Как я могу сделать 'ls' на dotfile?

ls на dotfile

Мой каталог содержит:

$ ls -A    
.dotfile20091021   file20091020       file20091021

Я хочу перечислить ВСЕ файлы, содержащие 20091021 на их имя.

Если я работаю:

$ ls -A *20091021*    
file20091021

Если я работаю:

$ ls -A .*20091021*    
.dotfile20091021

Я могу получить оба файла в единственной команде "ls"?

0
задан 05.12.2011, 17:37

4 ответа

Согласно этой ссылке существует опция удара в файлы точки шарика:

shopt -s dotglob

Если бы Вы используете удар затем все, что необходимо было бы сделать, после этого:

ls -A *20091021*

(Не может протестировать его здесь),

1
ответ дан 24.11.2019, 02:48
ls -A1 | grep "20091021"
4
ответ дан 24.11.2019, 02:48

Можно просто сделать

ls -a *20091021 .*20091021

(Придерживающийся строго Вашего запроса, что Вы хотите сделать это на сингле ls)

2
ответ дан 24.11.2019, 02:48

Вы полагаетесь (безотносительно оболочки, которую Вы используете) сделать расширение шарика.

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 потратила десятки тысяч долларов, избавляющихся от долларов в их продукте.

0
ответ дан 24.11.2019, 02:48

Теги

Похожие вопросы