tar는 파일만 나열합니다.

tar는 파일만 나열합니다.

재미있는 사실: 사용한다면기록관.tar.gz를 추출하여 "디렉터리 구조 유지"를 선택 취소하면타르 폭탄.

tar -ztftar 파일의 모든 파일과 디렉터리를 나열합니다. 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

(디렉토리를 포함하여 유형에 관계없이 모든 파일을 나열합니다).

관련 정보