파일 압축 해제 문제 - 매개변수 목록이 너무 깁니다.

파일 압축 해제 문제 - 매개변수 목록이 너무 깁니다.

각 폴더에 파일이 포함된 여러 폴더 계층 구조가 있는 폴더(예: 폴더 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/명령은 다음과 같지만 gunzip -r path/to/Folder/1/Folder_A/ path/to/Folder/2/Folder_A/ path/to/Folder/3/Folder_A/ # and so ongunzip은 "천" 인수를 허용하지 않는 것 같습니다. 위의 루프는 *첫 번째 루프를 확장하고 각 루프에 대해 새로운 gunzip 명령을 생성합니다.

for 루프가 작동하지 않으면 find를 사용해 볼 수 있습니다.

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

*(-directories가 특수 문자나 공백을 사용하는 경우 두 솔루션 모두 작동하지 않을 수 있습니다)

관련 정보