ファイルの解凍の問題 - パラメータのリストが長すぎます。

ファイルの解凍の問題 - パラメータのリストが長すぎます。

各フォルダにファイルを含む複数のフォルダ階層を持つフォルダ(フォルダAなど)のすべてのファイルを圧縮する必要があります。このフォルダAは、ディレクトリ内の何千ものフォルダに存在します。すべてのフォルダ内のすべてのファイルを圧縮する必要があります。次のコマンドを試しています。

gunzip -r path/to/Folder/*/Folder_A/

次のエラーが発生しますArgument list to long

コマンドを使用してファイルを圧縮するのに役立ちます。

答え1

for folder in path/to/Folder/*/Folder_A/; do gunzip -r "$folder"; done

テストしませんでしたが、これはうまくいくでしょう。 Bashは複数のディレクトリに展開されるため、コマンドは次のようになりますが、path/to/Folder/*/Folder_A/gunzipgunzip -r path/to/Folder/1/Folder_A/ path/to/Folder/2/Folder_A/ path/to/Folder/3/Folder_A/ # and so onは "千"引数を受け入れないようです。上記のループは*最初のループを拡張し、各ループに対して新しいgunzipコマンドを生成します。

forループが機能しない場合は、findを試してみてください。

find /path/to/Folder -name Folder_A -type d -print0 | \
    while read -d $'\0' folder; \
    do \
        gunzip -r "$folder" \
    done

*(-directoriesが特殊文字またはスペースを使用している場合、両方のソリューションが機能しない可能性があります)

関連情報