пакетная упаковка файлов

Previous Topic Next Topic
 
classic Классический list Список threaded Древовидный
3 сообщения Инструменты
Ответить | Древовидный
Открыть эту статью в виде дерева
|

пакетная упаковка файлов

ness
доброго дня!

требуется запаковать кучу папок с файлами в отдельные архивы (любые), используется вот что:

for X in *; do zip "${X}".zip "${X}" ; done

пакует все файлы в директории в одноименные zip. пакует то оно пакует, только пустые директории. в терминале вот:

  adding: 8259/ (stored 0%)
  adding: 8260/ (stored 0%)
  adding: 8262/ (stored 0%)
  adding: 8263/ (stored 0%)
  adding: 8264/ (stored 0%)
  adding: 8265/ (stored 0%)
  adding: 8266/ (stored 0%)
  adding: 8268/ (stored 0%)
  adding: 8270/ (stored 0%)
  adding: 8271/ (stored 0%)
  adding: 8272/ (stored 0%) и т.д.

собственно, подскажите что править (помимо кривых рук) или просто альтернативный вариант.)
Ответить | Древовидный
Открыть эту статью в виде дерева
|

Re: пакетная упаковка файлов

ness
нашел еще вариант: ls -1 | awk ' { print "zip "$1".zip " $1 } ' | sh
эффект тот же- пакует пустые каталоги. а мне бы рекурсивно чтоб...)
Ответить | Древовидный
Открыть эту статью в виде дерева
|

Re: пакетная упаковка файлов

ness
вопрос решился добавлением -r (рекурсия, кто б мог подумать) после do zip, т.е. команда будет выглядеть так:

for X in *; do zip -r "${X}".zip "${X}" ; done

тема закрыта)