압축 해제 명령을 "실행 취소"하는 방법은 무엇입니까?


19

"unzip XXX.zip"을 사용하여 zip 파일을 추출했습니다. 안타깝게도 실수를합니다.

이제 "unzip"으로 생성 된 모든 파일과 디렉토리를 삭제하고 싶습니다.
실행 취소하려면 어떻게해야합니까?

답변:


29

이것을 사용하십시오 :

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}

당신이 회의적이라면 이것을 사용하십시오 (확인을 요구할 것입니다)

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -iv {} 

이름에 공백이있는 파일이 있으면 실패합니다 ... (지금 +1을 -i편집 하면 :)
sarnold

문제는 awk '{print $4}'-파일 이름에 공백이있을 수 있습니다 $4 $5 $6 .... :)
sarnold

1
확인. 그것도 고쳤다.
Abhijeet Rastogi 2012

5
FTR 또한 원본 zip 파일을 삭제합니다
sjr

내 길 :unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
zhuguowei

5

당신은 거친 지점에 있습니다. 표준 zipinfo(1)유틸리티는 아카이브에서 명확한 파일 이름을 가져 오는 메커니즘을 제공하지 않습니다. 그러나 가까이 오실 수 있습니다.

zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i

줄 바꿈 파일이없는 파일이 확실하지 않은 경우 -i옵션을 제거 할 수 있습니다 rm(1)(확실히 지루할 것임).


4
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}

유틸리티를 -Z호출 하기 때문에 작업을 수행 zipinfo하고 -1옵션은 파일 이름 만 인쇄하도록 지시합니다.

이것에 대한 자세한 내용 man unzipman 1 zipinfo명령 을 찾을 수 있습니다


1

폴더를 먼저 만들지 않고 실수로 압축을 푼 후 디렉토리를 정리하려면 폴더를 만들고 압축을 풀고 다음을 수행하십시오.

rm -r ` ls folder `

"`"는 명령을 연결하는 데 매우 유용하지만 매우 문자 그대로입니다.

주석은이 답변을 향상 시켰습니다. 숨겨진 파일도 제거하려면 (아마도)

rm -r ` ls -A folder `

잘못된 구문으로 돌진하여 죄송합니다. 투표를 제거 할 수 있습니까?
chrispepper1989

1
zip이 파일 덮어 쓰기를 거부하면 원본이 삭제됩니다. 숨겨진 파일이 압축 해제 된 경우을 사용하지 않는 한 제거되지 않습니다 ls -a.
gmarmstrong

1
또는 오히려 ls -A, 목록에서 오류를 방지하기 위해 ...
gmarmstrong

0

명령 줄없이 노틸러스에서 파일을 추출하려면 실수로 파일을 추출한 위치로 이동하여 "수정"탭을 클릭하여 파일을 정렬 한 다음 정확한 시간으로 레이블이 지정된 모든 파일을 선택하고 삭제하면됩니다. 압축 해제 명령을 실행하십시오.


1
질문을주의 깊게 다시 읽으십시오. 귀하의 답변은 원래 질문에 대한 답변이 아닙니다 . 불행히도 Linux에는 Windows 탐색기가 포함되어 있지 않습니다.
DavidPostill

아! unzip이 지금까지 Windows 터미널 명령이 아니었던 것은 나에게 일어나지 않았습니다. 감사! 노틸러스에 비슷한 기능이 있는지 확인하고 답변을 편집하겠습니다. 그렇지 않으면 그냥 제거하겠습니다.
cameronroytaylor

-1
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}

2
이것이 질문에 대한 답변이 될 수 있지만, 그 이유에 대한 설명을 제공 할 수 있다면 더 나은 답변이 될 것 입니다.
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.