Як отримати список каталогу файлів Linux для файлів, що починаються з певної літери, яка не сходить у підкаталоги?


18

Припустимо, ви знаходитесь в каталозі, який містить багато файлів і безліч підкаталогів.

Ви хочете отримати в каталозі список усіх файлів, що починаються з літери "d". Ви набираєте

ls d*

і те, що ви отримуєте назад, - це переважно файли в підкаталогах (зокрема, файли в підкаталогах, що починаються з "d").

Як ви перелічите лише файли та імена каталогів у вашому поточному каталозі?

Відповіді:


32

Ах, я щойно знайшов це на 6-му читанні сторінки чоловіка. Це не дуже розумно названий параметр "каталог"

ls -d d* 

6
Вам знадобилося всього 29 секунд, щоб перечитати сторінку чоловіка і написати цю відповідь? Це швидко :-)
balpha

1
Крім того, ls -dd * / покаже лише каталоги.
innaM

6
balpha - я виявив це, перш ніж надсилати питання, а потім зрозумів, що якщо мені знадобиться стільки часу, щоб розібратися в цьому, я можу також допомогти майбутньому пошуковому працівникові і опублікувати питання q та a here.
dggoldst

3
Справедливо; в цьому немає нічого поганого.
balpha

1
І все-таки, CppLearner, це дійсно працює. Спробуй це.
dggoldst

10

Я вважаю, що це ще одне цікаве рішення,

ls | grep ^d

Забезпечує гнучкість регулярних виразів.


3
І складність регулярних виразів! ;-)
Кріс Нава

1
Це цікавий розчин, і мені подобається ідея використання регулярних виразів, однак, якщо ви додасте додаткові параметри до ls, він порушиться. Напр. "Ls -l | grep ^ d"
dggoldst

Правда, але не за всіма параметрами. лс -а | grep "^ \." надрукував би всі "приховані" файли.
Куер

інші ls flagsне працюють при використанні цього підходу. наприклад ls -ltr | grep ^d, не працює. в той час, як запропоновано у відповіді @dggoldst.
hitesh israni

3

знайти. -maxdepth 1 -імено d * -типу f

Гаразд, використовуючи пошук тут, є надмірність надмірності. Просто тад.


1
Але це допомогло мені перерахувати всі прямі каталоги користувача конкретного: find /home/ -maxdepth 1 -type d -user www-data. Тож спасибі і +1
Кирило Н.

1

ls -ld: Це дасть список каталогів, не спускаючись у підкаталоги.

Приклад:

ls -ld Cust*
Ця команда надасть перелік файлів та каталогів, з яких починається Cust.


1
Це по суті те саме, що прийняла відповідь п’ятирічки.
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.