サブディレクトリを使用してディレクトリを圧縮するときに、特定のファイルの圧縮をスキップする(含まれていません)、7zに命令できますか?

サブディレクトリを使用してディレクトリを圧縮するときに、特定のファイルの圧縮をスキップする(含まれていません)、7zに命令できますか?

WinRAR(Windows用)アーカイバーで私が本当に好きな機能の1つは、特定のファイルを圧縮されたアーカイブに含めながら、拡張子(名前パターン)に基づいて特定のファイルを圧縮する試みをスキップするように設定できることです。ユーザーのホームディレクトリをバックアップするときに多くの時間を節約し、mp3、jpg、zipなどのファイル圧縮を放棄し、テキスト圧縮時に影響を受けない(非固体)アーカイブに追加するだけです。 、xls、データベースなどのファイルが追加されています。

Linuxに切り替えた後、私の便宜上の理由で(tar.gzの支持者は権利/所有権情報とリンクを保存する必要があると言いますが、システムファイルではない場合は何も使用しません)。

しかし、特定のファイルの圧縮をスキップするWinRARの機能は本当に寂しいです。おそらくあなたは7zのファンかもしれません。この効果を得る方法をご存知ですか?

ベストアンサー1

通常はこれを使用して実行されますが、tar圧縮をスキップするには圧縮レベルを0に設定します。

私はGUIがなく、実際にそれを使用していないので、必要なことをするためにスクリプトを書く必要があるかもしれません。たとえば、私はPERLを使用しますが、好きな方法でこれを実行できます。この特定のファイルはこれらのファイルをスキップしますjpg

my $archive = "/home/user/archive.zip";
for $file @filenames
{
    my $compression_level = 9;
    $compression_level = 0 if($file =~ /jpg$/);
    `7za a -tzip -mx=$compression_level $archive $file`;
}

スクリプトを使用すると、必要に応じて複雑になる可能性がありますが、これはユーザー次第です。

おすすめ記事