명령 줄에서 모든 종류의 아카이브 파일을 빠르게 추출하는 방법은 무엇입니까?


11

commad-line을 사용하여 여러 종류의 아카이브 된 파일을 추출해야하는 경우가 많습니다. 그러나 모든 유형의 파일 아카이브에 대한 정확한 명령을 항상 기억하는 것은 아닙니다. 따라서 시간을 낭비하고 다시 검색해야합니다. 어떻게 피할 수 있습니까?


1
참조 atool있는 당신은 / 추출 여러 형식을 팩 수 : 나는이 질문에 대한 준 대답을 참조 명령 줄 아카이브 매니저 - extracter을 . 이 질문도 그 질문과 중복되므로 병합해야 할 것입니다.

답변:


15

dtrx명령은 그 문제에 대한 당신의 친구입니다.

형식을 추측하여 모든 아카이브 파일을 압축 해제합니다. 또한 압축 해제 한 파일이 새 디렉토리에 놓 이도록합니다. 현재 작업중 인 디렉토리를 수많은 파일로 엉망으로 만드는 것을 피하십시오.

설치

sudo aptitude install dtrx

용법

dtrx stuff.zip

11

다음 쉘 스크립트를 사용할 수 있습니다 (이름을 지정하고에 extract넣었습니다 ~/bin).

#! / bin / bash

[$ # -lt 1]이면;
  echo "사용법 :`basename $ 0` FILES"
  1 번 출구
fi

# I은 다음과 같은 기능을 발견 https://unix.stackexchange.com/a/168/37944 
# 내가 조금 개선. 이 아이디어에 대한 sydo 에게 감사드립니다 .
추출 () {
    $ @의 arg; 하다
        만약 [-f $ arg]; 그때
            사례 $ arg in
                * .tar.bz2) tar xjf $ arg ;;
                * .tar.gz) tar xzf $ arg ;;
                * .bz2) bunzip2 $ arg ;;
                * .gz) gunzip $ arg ;;
                * .tar) tar xf $ arg ;;
                * .tbz2) tar xjf $ arg ;;
                * .tgz) tar xzf $ arg ;;
                * .zip) 압축 해제 $ arg ;;
                * .Z) 압축 해제 $ arg ;;
                * .rar) rar x $ arg ;; # 'rar'를 설치해야합니다
                * .jar) jar -xvf $ arg ;; # 'jdk'를 설치해야합니다
                *) echo " '$ arg'는 extract ()를 통해 추출 할 수 없습니다";;
            esac
        그밖에
            echo " '$ arg'는 유효한 파일이 아닙니다"
        fi
    끝난
}

$ @ 추출

스크립트를 실행 가능하게 만드는 것을 잊지 마십시오 :

chmod +x ~/bin/extract

용법:

file_1 file_2 추출 ... file_n 

좋은데 zip은 때때로 자신의 하위 디렉토리를 원할 때 현재 디렉토리로 추출됩니다. unzip -d를 사용하면 basename $arg도움이 될 수 있습니다.
crafter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.