Linux Centos 7.6では、ディレクトリ内のすべてのファイルをファイルごとに個別のアーカイブに圧縮しようとしています。しばらく探してみましたが、道が見つかりませんでした。
答え1
最上位ディレクトリの内外のすべての一般ファイルに対してこの操作を再帰的に実行するとします$topdir
。
find "$topdir" -type f -exec 7za a {} {} \;
以下を含む単一ディレクトリの場合ただ圧縮したいファイルの場合は、次を使用します。
for pathname in "$topdir"/*; do
7za a "$pathname" "$pathname"
done
ここでの違いは、隠しファイルは圧縮されないことです。 withdotglob
でbash
シェルオプションを有効にすると、shopt -s dotglob
ループに隠された名前が含まれます。
(入力が減ります)を使用すると、find
次のように単一のディレクトリ内のファイルを処理できます。
find "$topdir" -maxdepth 1 -type f -exec 7za a {} {} \;