Разархивируйте tbz-файлы

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(, но только для этого единственного шаблона подстановки ), а точка делает шаблон соответствует только обычным файлам (, т.е. не каталогам и т. д.)

0
20.06.2019, 22:17
1 ответ

Использование 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в текущем каталоге.

1
28.01.2020, 02:40

Теги

Похожие вопросы