0

ディレクトリに存在するファイルのみを tar する方法。私はホームディレクトリにいることを試みtar -cvf /tmp/test.tar /tmp/mylog.docましたが、解凍すると内容にtmpディレクトリも含まれていました。mylog.doctar ファイルに存在するファイルだけが必要です。同様のクエリ tarring only the files of a directory が表示されます。しかし、それから多くの助けを得ることができませんでした。

4

2 に答える 2

4

コマンド ライン パラメーターを使用-Cして、作業するディレクトリを指定します。次に、このディレクトリに関連するファイル名を使用できます。

tar -cvf /tmp/test.tar -C /tmp mylog.doc

これは tar ファイル自体には適用されないことに注意してください。

于 2013-03-27T08:34:28.123 に答える
0
cd sourcedir ; tar cvf archive.tar ./file_to_tar

「/path/to/file」または「./path/to/file」を使用すると、結果のtarファイルに「path/to/」が追加されるためです(特定の(そしておそらく移植不可能な)オプションがtarにそうでないことを伝えている場合を除きます)

注: あまり古くない実稼働システムの中には、抽出時に先頭の「/」を取り除くことができないものもあります。

それらの「それほど古くない」システムでは:

tar cvf /tmp/hosts-backup.tar /etc/hosts
cd /secure/location
tar xvf /tmp/hosts-backup.tar

/secure/location の下に「./etc/hosts」ファイルを出力する代わりに、ファイル /etc/hostsを上書きします。(ほとんどの「最近の」tar が現在行っているように: 末尾の「/」を黙って無視し、パスを絶対ではなく相対にします。これは 99.9% の人々が望んでいることです)

私は最近、これでやけどを負いました:ログを抽出したかったのですが、そのログは元の場所を上書きしてしまいました(したがって、そこにあるより新しいログファイルを上書きしました)。システムで初めて tar を使用する前に、必ずこれを確認してください。(いくつかの回避策がありますが、簡単ではありません: chroot、および「sar」などの他のコマンド)

于 2013-03-27T12:12:33.560 に答える