tar.gzファイルに圧縮したいファイルを含むフォルダがあります。次のコマンドを使用しています。
tar -czvf filename.tar.gz foldername
もちろん、これはファイルを生成しましたfilename.tar.gz
。ただし、tarファイルを解凍すると、デフォルトでフォルダが作成され、filename
すべてのファイルがそのフォルダに保存されます。
tarファイル自体を作成するときにこのフォルダの作成を回避できますか?次のコマンドを試しましたが、機能しません。
tar -czv filename.tar.gz foldername
Ubuntu 14.04を使用しています。
私の現在のディレクトリ構造は次のとおりです。
~/Test/foldername
ディレクトリフォルダ名には、圧縮したいすべてのファイルが含まれています。私のコードは次のとおりです。
cd Test
tar czvf filename.tar foldername/*
答え1
-C
別の方法は、次のコマンドライン引数を使用することです。
tar czvf filename.tar.gz -C foldername .
最後の項目に注意してください。これは、.
-edパラメーターを使用して入力したtar
後に「このディレクトリ」を含めるように指示します。cd
foldername
-C foldername
最終的にtarファイルの名前は./
で始まるfoldername/
ので、現在の作業ディレクトリに解凍されます。
一方、同様の名前のtarファイルがあり、foldername/X
最初のディレクトリコンポーネントなしでそのファイルを解凍したい場合は、このパラメータをお勧め--strip-components=1
します。したがって、解凍コマンドは次のようになります。
tar xzf filename.tar.gz --strip-components=1
このパラメータに応じて、すべてのパス名の最初のディレクトリ部分は解凍中に「削除」されます。すべての詳細を確認してくださいman tar
。