Shell-Script

如何僅將所有文件內容壓縮到平面存檔中?

  • June 30, 2018

我想將目錄中的每個文件(包括子目錄中的文件)壓縮成一個沒有任何子目錄的 tar 存檔。因此,所有文件都在一個存檔目錄中。

一種解決方案,無需在附加模式下使用 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 
)

引用自:https://unix.stackexchange.com/questions/452539