LINUX.ORG.RU

find: не показывать начальный каталог

 ,


0

2

Привет. Как заставить find печатать только конечные файлы/каталоги (листья)? Например, у меня есть такая структура:

$ tree
.
├── a
└── b
    └── c

2 directories, 1 file


find печатает:

$ find .
.
./a
./b
./b/c



Зачем-то он печатает мне начальный каталог ./b, и будет делать так для всех подкаталогов. Как печатать с помощью рекурсивного find так как это делает tree?

Ответ на: комментарий от Kroz

там другое. Прочитал бы прежде чем постить первое попавшееся из гугла. Мне нужно исключить все каталоги, в которых есть файлы. Если файлов внутри нет - то показывать. Так как это делает tree. Например для более глубокого уровня вложенности find напечатает:

./a/b/c/d

./a/b/c/d/e

где e - файл.

А нужно без излишнего ./a/b/c/d и так для КАЖДОГО каталога с файлами. То есть печатать только конечные листья, как tree.

Но без скриптов на 100 строк, просто с помощью find.

former_anonymous ★★★ ()
Последнее исправление: former_anonymous (всего исправлений: 3)
Ответ на: комментарий от former_anonymous

Из коробки find такого не умеет, насколько я знаю. Надо небольшой скриптик набросать. Не сотня строк, но штуки три-четыре понадобится, да.

shell-script ★★★★★ ()
Ответ на: комментарий от bl

Если я правильно понял, ТС просит показать все директории, в которых есть файлы, а не сами файлы.

shell-script ★★★★★ ()
Последнее исправление: shell-script (всего исправлений: 1)

Ты явно пытаешься решить какую-то задачу, но вместо её описания, ты описываешь свои фантазии на тему её решения.
Иногда такой подход даже работает, да

zolden ★★★★★ ()
Ответ на: комментарий от zolden

Задача простая, на самом деле. Когда смотришь вывод find, то неудобно видеть для одного файла в директории 2 записи — сама директория и файл в ней. Насколько я понял, в этом случае ТС хочет удалить записи директории, если она не пуста, оставив только записи файлов/директорий в этой директории.

conformist ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.