Используйте команду оболочки, чтобы определить имя каталога и записать его в переменную.Затем используйте эту переменную для создания файла tar.
Например,
Создайте несколько файлов и каталогов:
shell$ mkdir -p foo/001
shell$ mkdir -p foo/002
shell$ mkdir -p foo/003
shell$ touch foo/bar.txt
shell$ tree foo
foo
├── 001
├── 002
├── 003
└── bar.txt
3 directories, 1 file
shell$
Проверьтеструктура каталогов
shell$ cd foo
shell$ find . -type d
.
./001
./003
./002
shell$ find . -type d | grep -v "\.$"
./001
./003
./002
shell$
Используйте команду find для обнаружения каталогов.Выполните итерацию в цикле и создайте tar-файлы с тем же именем, что и у каталогов.
shell$ for x in `find . -type d | grep -v "\.$"`; do
> echo "Tarring $x..."
> tar cvzf $x.tar.gz $x
> done
Tarring ./001...
a ./001
Tarring ./003...
a ./003
Tarring ./002...
a ./002
shell$
Проверка
shell$ tree .
.
├── 001
├── 001.tar.gz
├── 002
├── 002.tar.gz
├── 003
├── 003.tar.gz
└── bar.txt
3 directories, 4 files
shell$