現在の現在のディレクトリの一部のファイルをtarアーカイブで囲み、そのアーカイブを現在のディレクトリの親ディレクトリに配置しようとしています。誰かが私にこれを行う方法を説明できるかどうか疑問に思います。必要なファイルをまとめる方法は理解していますが、アーカイブを親ファイルにする方法は混乱しています。
現在、次のコマンドを使用しています。
$ tar -tvf something.tar $( find -name "*.txt")
これは、.txt拡張子を持つファイルをバンドルする必要があるためです。
答え1
次のいずれかの方法でこれを実行できます。
tar cvf ../something.tar $( find -name "*.txt")
something.tar
これにより、ファイルが上記のディレクトリに配置されます。
より詳細な方法は次のとおりです。
tar cvf /path/to/something.tar $( find -name "*.txt")
ファイルを配置する場所への直接パスを使用します.tar
。
実際の圧縮が必要な場合:
tar cvfz something.tar.gz $( find -name "*.txt")
Aはz
それをファイルにまとめます.gz
。
基本的にコンテンツを実際のアーカイブとして使用しcvf
たりcfvz
圧縮したりしたいと思います。c
コマンドでt
asを使用すると、tvf
アーカイブの内容を抽出せずに標準出力に送信しますが、まだアーカイブを作成していないため機能しません.tar
。
*
環境によっては脱出が必要な場合があります。
tar cvf ../something.tar $( find -name "\*.txt")
後でこの機能を必要とする可能性があるユーザーのための別のアップデート:
この機能を使用する人がまだインストールしていない場合は、findコマンドに以前に検索したパスを含める必要がfindutils
あります。-name
tar cvf ../something.tar $( find . -name "\*.txt")
tar cvf ../something.tar $( find /path/to/directory -name "\*.txt")
1つ目は現在のディレクトリから検索し、2つ目はディレクトリパスを使用します。