한 서버에서 다른 서버로 .gz 파일의 긴 복사본을 실행하고 있습니다. 동시에 복사된 파일의 압축을 풀고 싶습니다. 예를 들어, a
al로 시작하는 파일 이름부터 c
.
어떻게 해야 하나요?
답변1
가장 쉬운 방법은 쉘을 사용하는 것입니다. 비교적 현대적인 쉘(예: bash)을 가정하면 다음을 수행할 수 있습니다.
gunzip [a-c]*gz
답변2
네 말 뜻은
for file in [a-c]*.gz; do gunzip "$file"; done
심지어 gunzip [a-c]*.gz
(알려주신 @terdon에게 감사드립니다).
단순히 네트워크 트래픽을 줄이기 위해 이 작업을 수행하는 경우 연결 스트림을 압축하는 것이 더 합리적이거나 rsync
.
답변3
완전히 복사된 모든 파일의 압축을 안전하게 풀 수 있습니다. 따라서 작업은 어떤 파일이 완료되었는지 확인하는 것입니다.
복사가 시작되기 전에 디렉터리가 비어 있고 압축이 풀린 파일이 다른 디렉터리에 기록된다고 가정합니다. 압축을 풀 준비가 된 파일을 확인할 수 있는 한 가지 방법은 다음 파일을 기다리는 것입니다.
이것이 귀하에게 적합한 접근 방식이라면 이에 대한 몇 가지 코드를 제공할 수 있습니다.