我想将目录中的每个文件(包括子目录中的文件)压缩成一个没有任何子目录的 tar 存档。因此,所有文件都放在一个存档目录中。
答案1
一种解决方案,无需在追加模式下使用 tar 进行复制
find /etc -type f | (
CNT=1 ;
TARDST="/tmp/a_flat_archive.tar"
while read F ;
do
D=$(dirname $F) ;
SF=$(basename $F) ;
if [ $CNT -eq 1 ];
then
tar -C "$D" -cf $TARDST "$SF" ;
else
tar -C "$D" --append -f $TARDST "$SF" ;
fi ;
CNT=$(( $CNT +1 )) ;
done
)