Как я могу рекурсивно bzip2 все файлы, которые не являются bzipped?

Как я могу рекурсивно bzip2 все файлы, которые не заканчиваются расширением .bz2 в Linux?

7 голосов | спросил Alon Gubkin 14 PM00000040000001831 2010, 16:41:18

4 ответа


8

Найдите своего друга. Я считаю, что следующее должно это сделать:

find <target_dir> -not -name \*.bz2 -exec bzip2 \{\} \;

то есть. если dir, где файлы, которые вы хотите использовать, - это /var /log /blah, это будет:

find /var/log/blah -not -name \*.bz2 -exec bzip2 \{\} \;
ответил Jason Tan 14 PM00000040000004731 2010, 16:50:47
1

Сверху моей головы (извините, у вас нет оболочки, удобной для проверки цитирования и т. д.):

for _t in `find . -print |grep -v -E "\.bz$"`; do bzip2 -9 $_t && echo OK $_t || echo FAIL $_t; done

Это использует find, чтобы найти все файлы grep, чтобы вырезать те, у которых расширение .bz2, а затем кормить их по одному в bzip2. Я ожидаю, что некоторые из котировок ошибочны, хотя я сначала проверил бит в backquotes отдельно.

Удачи! Возможно, вы захотите использовать xz вместо этого - он обычно сжимается лучше - или даже tar все вверх и bzip2 или xz.

ответил Rup 14 PM00000040000004031 2010, 16:49:40
1

С zsh (setopt extended_glob должен быть включен):

bzip2 **/^*.bz2(.)

** recurses в подкаталогах; ^*.bz2 соответствует всем, кроме *.bz2; (.) ограничивает обычные файлы.

С bash 4, если вы в порядке с игнорированием bzip2 's жалуется на вызов в каталогах:

bzip2 **/!(*.bz2)
ответил Gilles 14 PM00000050000005531 2010, 17:08:55
0

Вот один лайнер. Если необходимо, сначала установите ifne. На Ubuntu:

sudo apt-get install moreutils

И затем:

find YOUR_DIR -type f -not -name \*.bz2 -print0 | ifne xargs -0 bzip2

Это делает то же самое, что и другие ответы, но вы не получите предупреждающих сообщений о каталогах bzip2ing, и если ничего не нужно bzip2 больше, вы не получите предупреждающие сообщения о сжатых данных bzip2ing на терминал. Он также использует xargs и т. Д.

YOUR_DIR может иметь дикие карты или несколько каналов, например. YOUR * DIR или тому подобное.

ответил Cookie 30 J000000Wednesday14 2014, 18:51:57

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132