디렉토리가 있습니다. 약 500K .gz 파일이 있습니다.
해당 디렉토리의 모든 .gz를 추출하고 .gz 파일을 삭제하려면 어떻게해야합니까?
디렉토리가 있습니다. 약 500K .gz 파일이 있습니다.
해당 디렉토리의 모든 .gz를 추출하고 .gz 파일을 삭제하려면 어떻게해야합니까?
답변:
이렇게해야합니다.
gunzip *.gz
find "$dir" -maxdepth 1 -name '*.gz' -print0 | xjobs -0 -l50 -v2 gunzip
인스턴스를 각각 50 개의 인수로 제한하고 병렬로 실행하는 것과 같은 방법을 사용하고 싶을 것입니다.
이를 수행하는 방법은 여러 가지가 있습니다.
# This will find files recursively (you can limit it by using some 'find' parameters.
# see the man pages
# Final backslash required for exec example to work
find . -name '*.gz' -exec gunzip '{}' \;
# This will do it only in the current directory
for a in *.gz; do gunzip $a; done
다른 방법도 있다고 확신하지만 이것이 아마도 가장 간단 할 것입니다.
그리고 그것을 제거 rm -rf *.gz
하려면 해당 디렉토리에서
시험:
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz
그런 다음 시도하십시오.
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm
이렇게하면 현재 디렉토리에있는 모든 .tar.gz 파일의 압축이 풀린 다음 모든 .tar.gz 파일이 삭제됩니다. 설명이 필요하면 "|" 명령 앞에있는 명령의 stdout을 취하고 그 뒤에있는 명령의 표준 입력으로 사용합니다. 따옴표없이 "man command "를 사용 하여 해당 명령과 인수가 수행하는 작업을 파악하십시오. 또는 온라인으로 조사 할 수 있습니다.
.gz
파일은 반드시 보관 할 필요는 없다. 이 경우를 수행 할 때 삭제할 것이 없습니다gzip -d file.gz
.