tar create: ターミナルで「tar: メンバー名から先行する '/' を削除」メッセージを防止する方法は?

tar create: ターミナルで「tar: メンバー名から先行する '/' を削除」メッセージを防止する方法は?

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/filehome/username/numbers/file/home/username/numbers/file-P--absolute-namescd /-C /

おすすめ記事