我想编写一个带有两个参数的脚本 1.父目录的名称(例如mainFolder) 2.要创建的tar的名称
父目录将包含子目录(folder1,folder2,folder3等)。 我需要一个脚本来创建“mainFolder.tar”,它将包含“folder1.tar”,“folder2.tar”,“folder3.tar”......等等......
tar cvf mainFolder.jar mainFolder
这将直接创建父级的tar“mainFolder”...任何人都可以告诉我如何使mainFolder.tar创建&包含其子目录的tar ...需要一个Shell脚本(例如createTar.sh)来做它..
在创建tar时,只应将父文件夹“mainFolder”中的“目录”考虑为tar ...而不是“.txt”文件..
答案 0 :(得分:1)
这是针对您的问题的POSIX兼容解决方案。可能有一种更简单的方法(不使用任何临时文件)但它会涉及到tar
的特殊且可能是非可移植的参数。
#!/bin/sh
startdir="$(pwd)"
mkdir -p parent/horse/frog parent/dog/frog parent/fish/frog
mkdir newparent
(
cd parent
for i in *
do if [ -d "$i" ]
then tar -cf "$startdir/newparent/${i}.tar" ${i}
fi
if [ -f "$i" ]
then cp "$i" "$startdir/newparent/"
fi
done
)
tar -cf newparent.tar newparent