Я хотел бы перечислить все каталоги и подкаталоги в и ниже текущего пути. Так как я только хотел отобразить каталоги, я придумал команду follwing:
find -type d -exec ls -d1 {} \; | cut -c 3-
Это распечатывает, например,
webphone
music
finance
finance/banking
finance/realestate
finance/trading
finance/other
finance/moneylending
finance/insurance
webradio
webtv
Проблема, которую я имею прямо сейчас, что финансы каталога перечислены. финансы не содержат файлов yust подкаталоги, которые Вы видите выше. То, чего я хочу достигнуть, является следующим выводом:
webphone
music
finance/banking
finance/realestate
finance/trading
finance/other
finance/moneylending
finance/insurance
webradio
webtv
В этом списке не перечислены финансы каталога. Поэтому мне нужен Ваш adive того, как отфильтровать каталоги, которые не содержат файлов (только подкаталоги).
Вот один путь: перечислите все регулярные файлы, снимите базовые имена файла и удалите дубликаты.
find . -type f | sed 's!/[^/]*$!!' | sort -u
Если Вы хотите разделить продвижение ./
:
find . -type f | sed -e 's!/[^/]*$!!' -e 's!^\./!!' | sort -u
Я рассматриваю дерево установки:
и затем выполненный
отобразить каталоги только.
Пример:
root@X100e:~# tree -d /var/cache/
/var/cache/
├── apache2
│ └── mod_disk_cache
├── apt
│ └── archives
│ └── partial
├── binfmts
├── cups
│ └── rss
├── debconf
├── dictionaries-common
├── flashplugin-installer
...