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フラグのパラメータです。

答え2

現在のディレクトリとすべてのサブディレクトリにあるすべての.zipファイルを検索するには、次の手順を試してください。

./foldername -type f -name '*.zip' 検索

現在のディレクトリとすべてのサブディレクトリのすべての.zipファイルを除外するには、次のようにします。

./foldername を探す -type f -name '*.zip' > .txt を除く

現在のディレクトリとすべてのサブディレクトリのすべての.zipファイルを除いてtarアーカイブを作成するには、次のようにします。

tar -zcvfバックアップフォルダ名.tar.gz -X除外.txt./フォルダ名

関連情報