[linux] 디렉토리에서 모든 .gz 압축을 풀고 삭제합니다.-Linux

디렉토리가 있습니다. 약 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 “를 사용 하여 해당 명령과 인수가 수행하는 작업을 파악하십시오. 또는 온라인으로 조사 할 수 있습니다.