Batch 7zipはすべてのファイルをディレクトリに個別に保存します(Centos 7.6)。

Batch 7zipはすべてのファイルをディレクトリに個別に保存します(Centos 7.6)。

Linux Centos 7.6では、ディレクトリ内のすべてのファイルをファイルごとに個別のアーカイブに圧縮しようとしています。しばらく探してみましたが、道が見つかりませんでした。

ベストアンサー1

最上位ディレクトリの内外のすべての一般ファイルに対してこの操作を再帰的に実行するとします$topdir

find "$topdir" -type f -exec 7za a {} {} \;

以下を含む単一ディレクトリの場合ただ圧縮したいファイルの場合は、次を使用します。

for pathname in "$topdir"/*; do
    7za a "$pathname" "$pathname"
done

ここでの違いは、隠しファイルは圧縮されないことです。 withdotglobbashシェルオプションを有効にすると、shopt -s dotglobループに隠された名前が含まれます。

(入力が減ります)を使用すると、find次のように単一のディレクトリ内のファイルを処理できます。

find "$topdir" -maxdepth 1 -type f -exec 7za a {} {} \;

おすすめ記事