Почему я не могу использовать такую команду, чтобы найти все PDF-файлы в каталоге и подкаталогах? Как мне это сделать? (Я использую Bash в Ubuntu)
ls -R *.pdf
РЕДАКТИРОВАТЬ
Как мне тогда удалить все эти файлы?
Почему я не могу использовать такую команду, чтобы найти все PDF-файлы в каталоге и подкаталогах?
Подстановочный знак *.pdf
в вашей команде расширяется командой bash
до всех подходящих файлов в текущем каталоге перед выполнением команды ls
.
Как мне это сделать? (Я использую Bash в Ubuntu)
найди твой ответ.
find . -name \*.pdf
это рекурсивный список файлов PDF. -iname
регистром, поэтому
find . -iname \*.pdf
перечисляет все файлы .pdf, включая, например, foo.PDF
Также вы можете использовать ls для ограниченного числа подпапок, например
ls *.pdf */*.pdf
найти все файлы pdf в подпапках (соответствует bar/foo.pdf, а не bar/foo/asdf.pdf и не foo.PDF).
Если вы хотите удалить файлы, найденные с помощью find, вы можете использовать
find . -iname \*.pdf -delete
Как уже говорили другие, найти ответ.
Теперь ответим на другую часть.
Как мне тогда удалить все эти файлы?
находить . -имя * .pdf -exec rm {} \;
Должен сделать это.
Используйте find вместо ls
find . -name '*.pdf'