gunzip
파일( )을 재귀적으로 시도하고 있지만 -r
해당 파일을 원래 위치에 저장할 권한이 없습니다. 나는 당신이 한 개별 파일의 위치를 변경하는 것에 대해 알고 있지만 gunzip {file} -c > {new file location}
원래 파일 위치의 원래 디렉토리 구조를 유지하고 새 위치에서 동일한 디렉토리 구조를 갖도록 두 파일을 결합하는 방법을 모릅니다.
답변1
GNU find가 있는 Unix(Linux 포함)에서는 재귀와 반복 모두에 사용할 수 있습니다.
find . -name '*.gz' -exec sh -c 'gunzip -c "{}" >"/output/path/{}"' \;
다른 Unix/find Embedded {}에서는 작동하지 않을 수 있으므로 셸이 필요하다고 생각합니다(Bourneish 가정).
find . -name '*.gz' | while read f; do gunzip -c "$f" >"/output/path/$f"; done
이것은 some.gz라는 이름의 하위 디렉터리가 없다고 가정합니다. 그렇다면 추가됩니다 -type f
.모두파일은 gzip으로 압축되어 있어 -type f
이것만으로도 충분합니다.
하지만 이건 그럴 수도 있지더 쉽게도착하다복사파일 트리를 쓰기 가능한 위치로 압축첫 번째(Unix에는 여러 가지 방법이 있습니다: cp -R
, rsync -r
, tar cf - | (cd somewhere; tar xf -)
심지어 Windows에서도 xcopy
) 복사본의 압축을 풉니다.