tar는 이름에 대괄호가 포함된 파일을 추출하지 않습니다.

tar는 이름에 대괄호가 포함된 파일을 추출하지 않습니다.

Linux에서는 다음 tar을 사용하여 아카이브에서 파일을 추출합니다.

tar -xC / -f /tarFile.tar someFolder/[HD] video1.mp4

이는 항상 잘 작동하지만 파일 이름에 대괄호가 포함된 경우에는 작동하지 않습니다. 타르 응답은 다음과 같습니다

someFolder/[HD] video1.mp4: not found in archive

대괄호를 제거하면 파일이 잘 추출됩니다.

모든 문자를 이스케이프 처리 \하고 주변 파일 이름을 '. 불운.

어떤 팁이 있나요? 감사해요

답변1

제공하는 첫 번째 명령은 두 개 또는 세 개의 파일을 추출하려고 시도합니다.

someFolder/H
someFolder/D
video1.mp4

파일 이름을 작은따옴표( ') 로 묶으면 tar프로그램은 이를 "또는 " 을 [HD]의미하는 와일드카드로 보고 처리합니다 . 따라서 두 개의 파일을 추출하려고 시도합니다.HD

someFolder/H video1.mp4
someFolder/D video1.mp4

참조 파일 이름그리고--no-wildcards플래그를 사용하면 다음과 같은 확장 시도가 억제됩니다.

tar -xC / -f /tarFile.tar 'someFolder/[HD] video1.mp4' --no-wildcards

답변2

대괄호를 와일드카드 문자(예: ?또는 *)로 바꿉니다.

tar -x -C/ -v -f tarFile.tar 'someFolder/?HD? video1.mp4'

또는:

tar -x -C. -v -f tarFile.tar 'someFolder/*video1.mp4'

파일 이름을 확인하려면 다음을 통해 아카이브 파일을 나열할 수 있습니다.

tar -t -f tarFile.tar | grep mp4$

관련 정보