tar
コマンド情報
コマンドを実行する場合:
tar -czf numbers.tar.gz numbers
ファイルは現在のディレクトリに作成されnumbers.tar.gz
ます。numbers
それ以外の場合スクリプトの目的- テストパス - 実行された場合:
tar -czf ~/numbers.tar.gz /home/username/numbers
tar -czf /home/username/numbers.tar.gz /home/username/numbers
2つのコマンド働く期待どおりですが、次のメッセージが常に表示されます。
- "tar: メンバー名から先行する '/' を削除します。"
これは、少なくとも1つのパス(この場合、両方が対応する/
文字を持つか含まれているために発生します)。いいえ間違いだけど気になりますね
質問
- ターミナルで「tar:メンバー名から先行する '/'削除」メッセージを防ぐ方法は?
私はそれだと仮定しています情報または警告するニュースとスクリプトの目的生成パスtar.gz
と圧縮ソースを定義するために必要ですdirectory
。端末でそのメッセージを見たくありません。可能ですか?オプションは何ですか?
答え1
アーカイブメンバーとして絶対パスを持つことはお勧めできません。これがGNUがtar
デフォルトで(アーカイブメンバー名とハードリンクターゲット(存在する場合)から)イニシャルを実際に削除する理由です。/
tar
ストリッピングを実行するのに満足していますが、警告を削除したい場合は、直接ストリッピングを実行できます。
tar -C / -czf ~/numbers.tar.gz home/username/numbers
または:
tar -C /home/username -czf ~/numbers.tar.gz numbers
アーカイブされたメンバーの場合numbers/file
に変更する必要がありますhome/username/numbers/file
。
使用/破壊をしないようにすることができtar
、この場合はアーカイブ会員になります。--absolute-names
-P
/home/username/numbers/file
抽出時に、ほとんどのtar
実装ではデフォルトで/
安全対策としてこの先行も削除されます。ディレクトリから抽出すると、ファイルがアーカイブに保存されているかどうかにかかわらず、または/オプションを再度渡さない限り、ファイルが抽出されます/tmp/test
(実際にパスが必要な場合は、aを実行するか、aを渡す方が合理的かもしれません)。絶対パスと同様に、ルートに基づいて解釈されます。/tmp/test/home/username/numbers/file
home/username/numbers/file
/home/username/numbers/file
-P
--absolute-names
cd /
-C /