tar 除外ファイル *.zip

tar 除外ファイル *.zip

*.zipパターンが機能しない理由tar

tar cfjv backup.tar.bz2 --exclude mydir/files/*.zip mydir

別の構文がありますか?

ベストアンサー1

除外パターンを引用する必要があります。mydir/files/*.zipそうしないと、シェルはパターンを拡張し(ワイルドカード)、複数のファイルと一致する可能性があり、コマンドラインの意味は予想どおりに大きく異なります。

これはtar、元のコマンドラインを次に変更することを意味します。

$ tar cfjv backup.tar.bz2 --exclude "mydir/files/*.zip" mydir

最初はスイッチに問題があると思いましたcfjv。これは、tar「現代の」コマンドラインスイッチ(接頭辞付き)とは-非常に異なって扱われる古代のコマンドラインスイッチです。それはあなたがそれをする理由です。いいえ移行後のコンテンツであっjvても、名前付きアーカイブをインポートします。f

Mac OS X のドキュメントのtar「互換性」セクションにこの内容が記載されています。

バンドルパラメータ形式は、過去の実装との互換性のためにサポートされています。これは最初の単語(先行文字なし)で構成され、各文字はオプションを表します。パラメータの後には別の単語が続きます。パラメーターの順序は、バンドル命令の対応する文字順序と一致する必要があります。例えば、

      tar tbf 32 file.tar

3つのフラグt、b、fを指定します。 bフラグとfフラグの両方に引数が必要なので、コマンドラインには2つの追加エントリが必要です。 32はbフラグのパラメータ、file.tarはfフラグのパラメータです。

おすすめ記事