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]
의미하는 와일드카드로 보고 처리합니다 . 따라서 두 개의 파일을 추출하려고 시도합니다.H
D
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$