tar - 抽出されたファイルのリスト

tar - 抽出されたファイルのリスト

どのようにファイルを抽出できますか?.tar.gz抽出されたファイルの痕跡を保持しながら保存しますか?

たとえば、次のようなファイル構造があるとします。

ROOT
 ╠═▶ children
 ║    ╠═▶ joe.txt
 ║    ╚═▶ george.txt
 ╠═▶ bar.txt
 ╠═▶ foo.txt
 ╚═▶ A̲R̲C̲H̲I̲V̲E̲.t̲a̲r̲.b̲z̲
      ├─▷ children
      │    ├─▷ joe.txt
      │    └─▷ bob.txt
      ├─▷ hello.txt
      ├─▷ world.txt
      └─▷ foo.txt

これで、最新のファイルを保持しながらアーカイブからファイルを抽出する場合は、どのようなファイルが抽出されたかを知りたいと思います。
tar xf ./ARCHIVE.tar.gz --keep-newer-files | xargs -I EXTRACTED_FILE echo EXTRACTED_FILE

ベストアンサー1

--to-commandこのオプションを使用して、抽出されたすべてのファイルの印刷をトリガーします。

引数は、環境変数TAR_FILENAMEを使用してファイル名を取得するコマンドです。STDIN

STDIN したがって、抽出されたファイルを読み込み、生成する必要があり、STDOUT生成されたファイルに印刷できます。

tar -xzf ../ARCH.tgz --keep-newer-files \
   --to-command="sh -c $(printf '%q' \
  'mkdir -p "$(dirname "$TAR_FILENAME")";dd of="$TAR_FILENAME" >/dev/null 2>&1;echo "#EXTRACTED#$TAR_FILENAME" ')" > output_tar.txt

抽出された各ファイルには1行がありますoutput_tar.txt

バラより外部プログラムへの書き込み詳しくは

おすすめ記事