Проблемы с сопоставлением регулярных выражений с использованием оператора = ~ в bash [[команда

Непонятно, чего вы пытаетесь достичь. Я убегаю от варианта использования, когда здесь должны сжиматься только подкаталоги.

Сначала перейдите в каталог, содержащий коллекцию каталогов, а затем:

find -maxdepth 1 -type d | {
    while read dir; do 
        if [ ! "x${dir#*/}" = "x." ]; then
            tar cJf ${dir#*/}.tar.xz ${dir#*/};
        fi;
    done
}

Это хорошо работает с zsh . Для проверки поместите echo перед tar , чтобы увидеть, проверяется ли команда и т. Д.

Однако создание такой коллекции архивов обычно нежелательно. Обычно вы хотите сжать всю коллекцию, использовать прозрачное сжатие диска, на котором находятся эти файлы, или использовать транспортное сжатие (например, X-DEFLATE с HTTP).

Имейте в виду, что вы получите не «сжатый каталог», а «сжатый архив», эти вещи не взаимозаменяемы, так как архивы сами по себе являются файлами, а каталоги - просто дейтаграммами inode .

5
16.10.2017, 19:16
0 ответов

Теги

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