아카이브를 단일 폴더로 추출

아카이브를 단일 폴더로 추출

아마도 이것이 제1세계 문제의 정점일지도 모르지만, 수년간의 불안 끝에 나는 그것을 공개적으로 드러내야 한다는 느낌을 받았습니다.

funtool.zip폴더 에 다운로드했다고 가정합니다 ~/Downloads. 두 가지 옵션이 있으며 각각 아카이브에 올바른 루트 폴더가 있는지 여부에 따라 두 가지 가능한 결과가 있습니다.

unzip funtool. 가능한 결과:

  • ~/Downloads/funtool/(files)- 좋아요
  • ~/Downloads/(lots of files)——아! 다운로드 폴더가 엉망이네요

unzip funtool -d funtool. 가능한 결과:

  • ~/Downloads/funtool/funtool/(files)--더블 폴더. 짜증 나는!
  • ~/Downloads/funtool/(files)- 좋아요

지능이 내장된 GUI 압축 해제기를 본 적이 있지만 저는 CLI 전문가입니다. 내 해결책은 루트 폴더를 확인 unzip -t funtool하고 그에 따라 행동하는 것이었습니다. 그러나 몇 년이 지난 후에 나는 충분히 지쳤습니다.

rar파일 에 대해서도 자동으로 이를 수행할 수 있는 스크립트나 다른 것이 있습니까 7z? 적어도 tar매번 하는 것이 옳은 것처럼 보입니다. 아마도 좋은 습관 때문일 것입니다.

답변1

다양한 아카이브 형식을 위한 CLI 프런트엔드로 다음과 같은 것들이 있습니다 unp.하나의 명령으로 (거의) 모든 것을 압축 해제합니다..

다음과 같은 옵션이 있다고 주장합니다.

   -u Special helper mode.
      For most archive types:
      - create directory <filename without suffix>/
      - extract contents there
      For Debian/Ubuntu packages:
      - extract data.tar.gz after each operation in local directory
      - extract control.tar.gz into control/<package_version_arch>/
   -U Smart mode, acts like -u (see above) if archive contains multiple
      elements but if there is only one file/directory element then it's stored 
      in the current directory.

그 다음에소리마치 당신이 찾고 있는 행동에 가까운 것 같습니다.

-U그러나 zip 파일 이름 자체와 관련이 없는 단일 파일이 포함된 ZIP인 경우 이 모드는 여전히 단일 파일을 삭제합니다.

답변2

7z최소한 아카이브의 루트 디렉터리(있는 경우)가 추출하려는 디렉터리의 이름과 일치하는 경우 이 작업을 수행할 수 있습니다.

7z x -spe funtool.zip -ofuntool

funtool.zip의 내용이 모두 funtool아카이브의 디렉터리 내에 있는 경우 7z아래 디렉터리는 복사되지 않으므로 funtool원하는 결과를 얻을 수 있습니다.

답변3

명령줄 도구가 있습니다.디텍스, 모든 유형의 압축 파일을 추출할 수 있습니다. 기본적으로 모든 내용은 아카이브 이름을 딴 전용 디렉터리에 기록됩니다.

그냥 실행

dtrx <archive_name>

Debian 기반 배포판이 있는 경우 APT 저장소에서 찾을 수 있습니다.

관련 정보