ls -R *.pdf
будет рекурсивно вызывать ls
для всего, что соответствует *.pdf
(, если в текущем каталоге нет ничего, совпадающего с *.pdf
, вы не получите результата, а если есть, он будет рекурсивно обращаться к нему только в том случае, если это каталог ). ls -R | grep pdf
покажет вам в результате ls -R
все, что соответствует регулярному выражению pdf
, а это не то, что вам нужно.
Это то, что вам нужно:
find myfolder -type f -name '*.pdf'
Это даст вам пути ко всем обычным файлам(-type f
)в каталоге myfolder
или ниже, чьи имена файлов соответствуют шаблону *.pdf
. Шаблон должен быть заключен в кавычки, чтобы защитить его от оболочки.
С оболочкой zsh
(, которая недавно стала оболочкой по умолчанию в macOS):
print -rC1 myfolder/**/*.pdf(.ND)
Это распечатает пути ко всем обычным файлам в или ниже каталога myfolder
, имена которых заканчиваются на .pdf
, в одном столбце. Сопоставление будет включать скрытые имена. N
и D
в квалификаторе glob соответствуют настройке параметров оболочки nullglob
и dotglob
в оболочке bash
(, но только для этого единственного шаблона подстановки ), а точка делает шаблон соответствует только обычным файлам (, т.е. не каталогам и т. д.)
Использование GNUtar
:
for archive in *.tbz; do
tar -x -j -f "$archive"
done
Это попытается извлечь все файлы, соответствующие *.tbz
в текущем каталоге. Предполагается, что каждый такой файл являетсяbzip2
-сжатым tar
архивом.
Чтобы просмотреть файлы во время их извлечения, используйте tar
с опцией -v
:
for archive in *.tbz; do
tar -x -vj -f "$archive"
done
При использовании другой реализации tar
, которая не реализует -j
обработкуbzip2
-сжатых данных, вам придется распаковывать архивы отдельно:
for archive in *.tbz; do
bzcat "$archive" | tar -x -v -f -
done
Это, очевидно, будет работать и с GNU tar
. bzcat
можно заменить на bzip2 -d -c
.
Чтобы извлечь файлы в другой каталог, отличный от текущего, используйте -C destdir
сtar
:
for archive in *.tbz; do
tar -x -j -f "$archive" -C destdir
done
Предполагается, что вы хотите поместить файлы в каталог с именем destdir
в текущем каталоге.