재미있는 사실: 사용한다면기록관.tar.gz를 추출하여 "디렉터리 구조 유지"를 선택 취소하면타르 폭탄.
tar -ztf
tar 파일의 모든 파일과 디렉터리를 나열합니다. tar 파일의 모든 파일을 나열하는 방법이 있습니까?아니요디렉토리 구조?
답변1
매뉴얼 페이지에는 이를 수행하는 방법이 없지만 언제든지 결과를 필터링할 수 있습니다. 다음은 파일 이름에 개행 문자가 없다고 가정합니다.
tar tzf your_archive | awk -F/ '{ if($NF != "") print $NF }'
어떻게 작동하나요?
/
마지막 필드는 필드 구분 기호를 awk
( $NF
)로 설정하여 알 수 있습니다. 이는 파일 이름이 처리되는 경우 파일 이름이고, tar
디렉토리 이름이 처리되는 경우 비어 있습니다(디렉토리 이름에 후행 슬래시 추가). 따라서 기본적으로 awk
비어 있지 않은 경우 마지막 필드를 인쇄하도록 지시하고 있습니다 .
답변2
Joseph R.의 제안을 사용하면 정규식을 사용하여 [^/]$
로 grep
끝나지 않는 이름을 찾을 수 있습니다 /
.
tar tzf archive.tar.gz | grep -e "[^/]$"
답변3
모든 파일 이름에 개행 문자가 포함되어 있지 않다고 가정합니다.
tar -tf foo.tar | sed -e 's#.*/##' -e '\#.#!d'
/
첫 번째 sed 명령은 줄의 마지막 명령 앞의 모든 항목을 제거하여 파일 이름 부분만 인쇄합니다. 두 번째 명령은 이제 빈 줄, 즉 /
디렉터리인 a로 끝나는 줄을 삭제합니다.
답변4
(POSIX 명령을 사용 pax
하여 파일 읽기 tar
):
pax -'s@.*/@@' < file.tar
(디렉토리를 포함하여 유형에 관계없이 모든 파일을 나열합니다).