Найти все файлы в каталоге, которые не являются самими каталогами - PullRequest
31 голосов
/ 19 августа 2009

Я ищу способ перечисления всех файлов в каталоге, кроме самих каталогов, и файлов в этих подкаталогах.

Итак, если у меня есть:

./test.log
./test2.log
./directory
./directory/file2

Мне нужна команда, которая возвращает: ./test.log ./test2.log и ничего больше.

Ответы [ 7 ]

55 голосов
/ 19 августа 2009

Если вы хотите test.log, test2.log и file2, тогда:

find . -type f

Если вы не хотите file2, тогда:

find . -maxdepth 1 -type f
13 голосов
/ 27 декабря 2015

Если вам нужны символические ссылки, каналы, файлы устройств и другие специфические элементы файловой системы, вы должны использовать:

find -maxdepth 1 -not -type d

В этом списке будет все, кроме каталогов.

3 голосов
/ 19 августа 2009

используя find просто как:

find . -maxdepth 1 -type f
0 голосов
/ 07 декабря 2009

Еще один вариант

ls -ltr | grep ^d
0 голосов
/ 19 августа 2009
$ find . -type f -print

Каждый файл будет в отдельной строке. Вы должны быть в каталоге, который хотите найти.

0 голосов
/ 19 августа 2009
find /some/directory -type f
0 голосов
/ 19 августа 2009
find . -type f
...