
ディレクトリ内のすべてのファイル(サブディレクトリのファイルを含む)を子ディレクトリなしで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
)