すべてのファイルの内容を単一のアーカイブに圧縮するにはどうすればよいですか?

すべてのファイルの内容を単一のアーカイブに圧縮するにはどうすればよいですか?

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

おすすめ記事