Показывать только каталоги, а не их содержимое с помощью `find -type d |xargs ls` - PullRequest
0 голосов
/ 04 июня 2018

Я хочу найти некоторые папки по имени, а затем перечислить их информацию, используя «ls», вот что я сделал, используя «find»,

find ./ -mindepth 1 -maxdepth 3 -type d -name logs

, что я получил:

./RECHMN32Z/US/logs
./RECHMN32Z/UM/logs
./RECHMP3BL/US/logs
./RECHMP3BL/UM/logs
./RECHMAS86/UM/logs
./RECHMAS86/US/logs

, а затем я добавляю "xargs ls -l", тогда он будет возвращать информацию обо всех файлах в этих папках, возвращенных выше, если я просто хочу вывести информацию об этих папках, как это сделать?

1 Ответ

0 голосов
/ 04 июня 2018

Дело не в поиске или ксергсе, а в лс.При задании имен каталогов ls показывает их содержимое.Вы можете использовать -d, чтобы он показывал только сами каталоги.

find имеет действие -ls, которое использует тот же формат, что и ls -dils.Нет необходимости вызывать внешнюю команду.

find ./ -mindepth 1 -maxdepth 3 -type d -name logs -ls

Или использовать ls -ld для просмотра каталогов, а не их содержимого.-exec cmd {} + является более простой альтернативой xargs.Не требуется конвейер.

find ./ -mindepth 1 -maxdepth 3 -type d -name logs -exec ls -ld {} +
...