디렉토리가 있습니다. 약 500K .gz 파일이 있습니다.
해당 디렉토리의 모든 .gz를 추출하고 .gz 파일을 삭제하려면 어떻게해야합니까?
답변
이렇게해야합니다.
gunzip *.gz
답변
@techedemic은 정확하지만 ‘.’가 없습니다. 현재 디렉토리를 언급하고이 명령은 모든 하위 디렉토리를 통과합니다.
find . -name '*.gz' -exec gunzip '{}' \;
답변
이를 수행하는 방법은 여러 가지가 있습니다.
# 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
하려면 해당 디렉토리에서
답변
현재 디렉토리와 하위 디렉토리에서 모든 gz 파일을 추출합니다.
find . -name "*.gz" | xargs gunzip
답변
단일 파일을 추출하려면 다음을 사용하십시오.
gunzip file.gz
파일을 추출하고 .gz 파일을 제거합니다.
답변
for foo in *.gz
do
tar xf "$foo"
rm "$foo"
done
답변
시험:
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 “를 사용 하여 해당 명령과 인수가 수행하는 작업을 파악하십시오. 또는 온라인으로 조사 할 수 있습니다.