web-dev-qa-db-ja.com

「検索」の結果を「Tar」し、ディレクトリ構造を保持します

tarしたいすべての*。txt findコマンドの結果として取得するファイル、次のようなツリー構造を持つディレクトリに存在します。

  • Directory_name
    • dir1
      • file1.pdf
      • file1.txt
    • dir2
      • file2.pdf
      • file2.txt
    • dir3
      • file3.pdf
      • file3.txt

(ファイル名は単なる例です)。

しかし、ディレクトリ構造を維持したい

このコンテンツを含むtar.gzファイルを取得できるコマンドは何ですか?

  • dir1
    • file1.txt
  • dir2
    • file2.txt
  • dir3
    • file3.txt
7
Kamafeather

xargsを使用して、コマンドの出力を引数として別のコマンドに渡すことができます。

find . -iname '*.txt' -print0 | xargs -0 tar zcvf the_tarball.tar.gz

ここで-print0 from findおよび-0 from xargsは、ファイル名を正しく区切るために連動して機能します(スペースなどの名前が問題にならないように)。

12
outlyer