Как сжать / сжать несколько папок по отдельности в каталоге с помощью Unix?

например, в директиве X: у меня есть папки a, b, c и т. д. Я должен сжать их как a.zip, b.zip и c.zip. даже я не знаю, имена папок похожи на a, b, c, мы имеем к этому динамически.

1 ответ1

1

Предполагая, что вы хотите ZIP-файлы,

cd /mydir/foo
find . -type d -d 1 -exec zip -r {} {} \;

Это создаст zip-файл для каждого каталога в /mydir /foo.

РЕДАКТИРОВАТЬ: что делает эта командная строка (помните, что никогда не копируйте и не вставляйте команду терминала, которую вы не понимаете, это опасно)

find . -type d -d 1 -exec xxx

найдете все предметы внутри. (в нашем случае /mydir /foo), типа d для директории, затем выполните команду xxx

zip -r {} {}

это просто команда zip, (не стесняйтесь добавлять нужные параметры, -r означает рекурсивный), используя в качестве первого (zip-файла) и второго (исходного) аргументов специальную строку {}, которая передается функцией find при каждом совпадении. \; просто терминатор, сообщающий, что команда -exec завершена, правильно экранирована, чтобы не быть неправильно интерпретированной оболочкой

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .