Como parece que você está executando tar
, provavelmente a melhor maneira é:
basedir=$1
for dir in "$basedir"/*; do
if test -d "$dir"; then
tar -cvf "$dir".tar "$dir"
rm -r "$dir"
fi
done
Se você quiser usar find
, você deve adicionar -maxdepth 1
, para evitar a criação de arquivos extras.
basedir=$1
for dir in $(find "$basedir" -mindepth 1 -maxdepth 1 -type d); do
tar -cvf "$dir.tar" "$dir"
rm -r "$dir"
done
Observe também que, em tar -cvf
, o nome do arquivo de saída vem primeiro (logo após o f
).