Как вернуть только имена файлов из команды find?

Я ищу, чтобы получить список только имена файлов (без остальной части пути) при выполнении команды find из терминала. Как это сделать на компьютере mac?

11
задан nixda
27.11.2022 11:39 Количество просмотров материала 2759
Распечатать страницу

7 ответов

С имени:

find . -type f -exec basename {} \;

15
отвечен Paulo Almeida 2022-11-28 19:27

Evilsoup отметил, что то, что было опубликовано не разнесены имена файлов. Поэтому вместо этого можно использовать:

find . -type f -print0 | while IFS= read -r -d '' filename; do echo ${filename##*/}; done
6
отвечен nerdwaller 2022-11-28 21:44

С GNU find вы можете сделать:

 find ~/tmp/ -printf "%f\n"

Это, вероятно, стоит попробовать и в OS X.

2
отвечен Ярослав Рахматуллин 2022-11-29 00:01

есть лучший способ удалить все, кроме последней части пути к файлу; с awk. Это лучше, потому что awk не выполняется один раз для каждого файла. В некоторых случаях это имеет значение.

find ~/tmp/ -type f  | awk -F/ '{ print $NF }'

мы ищем только файлы в ~ / tmp и получаем список, где каждая запись разделена косой чертой. Следовательно, мы используем косую черту в качестве разделителя полей (-F/) и печатаем параметр поля ($1..$9), что соответствует последнему полю ($NF).

2
отвечен Ярослав Рахматуллин 2022-11-29 02:18

EDIT:

используя sed:

$ find . -type f | sed 's/.*\///'

С помощью xargs команда, как указано в ответе @nerdwaller

$ find . -type f -print0 | xargs --null -n1 basename
2
отвечен stderr 2022-11-29 04:35

Как насчет этого:

find … | egrep -o -e '[^/]+$'

преимущество: порождается только один дополнительный процесс, а не один для каждого результата.

1
отвечен David Foerster 2022-11-29 06:52

можно назвать sh изнутри find -exec вариант и во избежание использовать uneccesary трубы. Это также имеет то преимущество, что вам не нужно беспокоиться о забавных именах файлов (пробелы, новые строки и т. д.):

find . -type f -exec sh -c 'echo "${0##*/}"' {} \;
0
отвечен evilsoup 2022-11-29 09:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх