ls на dotfile
Мой каталог содержит:
$ ls -A
.dotfile20091021 file20091020 file20091021
Я хочу перечислить ВСЕ файлы, содержащие 20091021 на их имя.
Если я работаю:
$ ls -A *20091021*
file20091021
Если я работаю:
$ ls -A .*20091021*
.dotfile20091021
Я могу получить оба файла в единственной команде "ls"?
Согласно этой ссылке существует опция удара в файлы точки шарика:
shopt -s dotglob
Если бы Вы используете удар затем все, что необходимо было бы сделать, после этого:
ls -A *20091021*
(Не может протестировать его здесь),
Вы полагаетесь (безотносительно оболочки, которую Вы используете) сделать расширение шарика.
ls -lah | grep \.foo
.. мог бы помочь Вам уладить это портативным способом.
Например:
user@tower:~ ls -lah | grep \.mozilla
drwx------ 3 root root 4.0K 2007-11-14 06:17 .mozilla
user@tower:~
Созерцайте, питание каналов :) Расширение, которое является осуществлением для читателя. shopt не является портативным и в системах, которые используют строго оболочка POSIX (такая как тире), это повреждается. Лучше записать это просто, и портативно.. или Вы будете загружать свой испытанный и истинный сценарий на поле, выполняющее некоторый другой дистрибутив, и наблюдать, что он повреждается, ужасно.
NB, каждая оболочка делает расширение шарика своим собственным способом, широко определенным его лицензией., избегайте bashisms. Ubuntu потратила десятки тысяч долларов, избавляющихся от долларов в их продукте.