잘못된 디렉토리에 tar 파일을 추출했는데 이 tar 파일이 200개의 파일을 추출했습니다. 디렉토리에 10개의 파일이 있고 필요하기 때문에 디렉토리에서 모든 것을 삭제할 수 없습니다.
답변1
개인적으로 저는 tar 파일을 빈 디렉토리에 추출하고 diff --report-identical-files --recursive --brief
새 디렉토리를 오류 디렉토리에 추출한 다음 일부 sed 스크립트를 사용하여 오류 이름을 추출하고 이를 일련의 rm
명령으로 변환한 다음 실행합니다.
내 sed 스크립트:
#!/bin/sh
stdbuf -oL sed -n \
-e 's/^Files ..*\(\/..*\) and \(..*\1\) are identical$/\2/p' \
-e 's/^File ..*\(\/..*\) is a socket while file \(..*\1\) is a socket$/\2/p' \
-e 's/^File ..*\(\/..*\) is a fifo while file \(..*\1\) is a fifo$/\2/p' \
| stdbuf -oL sed \
-e s/"'"/"'"'"'"'"'"'"'"/g \
-e 's/.*/rm '"'"'&'"'"'/' \
;
더 간단한 해결책은 tar -t
.tar 파일을 사용하여 파일 목록을 생성한 다음 파일을 삭제하는 것입니다.
아마도:
tar tf tarfilename.tar | xargs rm -i