Как я могу остановить ls от перехода в каталоги, похожие на prune for find?

12

Если я печатаю, ls *ro*я также получаю файлы в подкаталогах, которые соответствуют *ro*шаблону.
Есть ли вариант для ls похож на чернослив?

В идеале флаг, в противном случае, возможно, exec?

Майкл Даррант
источник

Ответы:

25

Используйте -dпереключатель:

ls -d *ro*

.....

manatwork
источник
Я написал скрипт, который получает биты доступа к папке (преобразованные в обозначения 755 или 644), дату и время изменения и имя папки, а затем отправляет информацию через текстовое сообщение. Мне нужно, чтобы это было <140 символов. Это помогло, спасибо.
user208145 30.06.15
4

Вы можете использовать:

ls | grep ro

Чтобы выполнить задачу. Передайте по выводу, lsкоторый выводит только содержимое текущего каталога, grepи выборочно вывести файлы, соответствующие шаблону регулярных выражений.

darnir
источник
-1 Как бы grep узнал, было ли совпадение с шаблоном в каталоге или подкаталоге?
Майкл Даррант
Также это фактически ничего не возвращает. Попытайся.
Майкл Даррант
1
По умолчанию ls выводит только содержимое текущего каталога. Таким образом, передача этого вывода в grep возвращает только те данные, которые соответствуют заданному регулярному выражению. Я попробовал данную команду в моей системе Arch, и она отлично работает.
Дарнир
Поскольку grep принимает регулярное выражение в качестве входных данных, не добавляйте звездочки вокруг ro. Как я уже говорил, просто выполните grep ro. Это грубый взлом по сравнению с ответом Манатворка, но прекрасно работает.
Дарнир
Однако, если у вас есть абсурдное количество файлов, глобализация в ответе manatwork может достигнуть предела длины командной строки. Это не будет
Изката