find -mindepth 1 -maxdepth 1 -type d -exec tar czf {}.tar.gz {} \;
Обратите внимание, что я использовал -maxdepth 1
.
Рассмотрим структуру каталогов:
.
|-- a
| `-- x
|-- b
`-- c
Без -maxdepth 1
вы получите a.tar.gz
и a/x.tar.gz
. a.tar.gz
будет содержать x и все файлы внутри; и a/x.tar.gz
будет содержать x и его файлы. Но это хранит предметы в пределах x дважды, при условии, что это не цель.
Обновлен для использования -mindepth 1
, поскольку при запуске вне example/
также создается example.tar.gz
.
Обновление ... и для bzip2:
find -mindepth 1 -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;