親ディレクトリにtarアーカイブを作成する

親ディレクトリにtarアーカイブを作成する

現在の現在のディレクトリの一部のファイルを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コマンドでtasを使用すると、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つ目はディレクトリパスを使用します。

関連情報