Я пишу сценарий кш. Необходимо найти все имена каталогов непосредственно в текущем каталоге, которые содержат только файлы, а не подкаталоги.
Я знаю, что мог бы использовать ls -alR
и рекурсивно анализировать выходные данные для первой буквы в первом поле ( d
для каталога). Я думаю, что awk
это лучший способ разобрать и найти.
Например, простой ls -al
вывод в текущем каталоге:
drwxr-xr-x 22 af staff 748 18 Mar 22:21 .
drwxr-xr-x 5 root admin 170 17 Mar 18:03 ..
-rw------- 1 af staff 3 17 Mar 16:37 .CFUserTextEncoding
drwxr-xr-x 5 af staff 170 17 Mar 17:12 Public
drwxr-xr-x 9 af staff 306 18 Mar 17:40 Sites
-rw------- 1 af staff 3 17 Mar 16:37 textd
…
В этом выводе 2 каталога: Public
и Sites
. Каталог Public
не содержит подкаталогов, но содержит Sites
. Есть 3 подкаталога в Sites
. Поэтому мне нужно отображать только те каталоги, в которых нет каталогов. В моем случае это только Sites
.
/some/directory
него есть индекс # 12345678, если у него нет подкаталогов, будет ровно 2 жестких ссылки на этот индекс:/some/directory/.
и/some/directory
. Это работает, есть ли какие-либо файлы в каталоге..
иfoo/..
есть один и тот же номер инода.)*/
соответствует подкаталогам текущего каталога. Это включает в себя символические ссылки на каталоги, которые вы можете или не можете желать.В ksh93 добавление
~(N)
в начале шаблона приводит к его расширению до пустого списка, если совпадений нет. Без этого шаблон остается неизменным, если нет соответствия.Следующая функция ksh93 выводит список подкаталогов текущих каталогов, которые не содержат ни одного подкаталога или ссылки на каталог.
источник
если я вас не правильно понял, вам нужно только найти файлы в каталоге, а не в подкаталогах. Если это ваше намерение, вот решение
если вы хотите найти не обычные файлы (например, файлы блочных устройств, файлы символьных устройств и т. д.), обратитесь к справочной странице по
find
команде и найдите ключевое слово type на этой странице. Вы увидите различные типы файлов, в том числе обычные файлы и каталоги и т. Д.Надеюсь, это то, что вы ищете
источник