.zip 파일의 압축을 풀고 있습니다. 이렇게 할 수는 있지만 하위 디렉터리와 해당 콘텐츠는 무시하고 상위 폴더 데이터만 추출해야 합니다.
다음은 zip 파일의 이름 형식입니다.
파일명.csv.zip
내가 사용한 명령은 unzip -j /zip_filepath "*" -d /final_directory입니다.
위 명령을 사용해 보았지만 위 명령은 zip 파일의 일부인 전체 zip 콘텐츠를 모두 추출합니다.
zip 파일의 파일 구조는 아래에서 확인하세요.
- -rw-r--r-- abc.csv
- drwxrwxr_x __MACOSX/
- -rw-r--r-- __MACOSX/_abc.csv
두 번째 zip 파일 구조: *-rw-r--r-- xyz.csv
zip 파일에서 abc.csv 및 xyz.csv 파일만 추출하고 싶습니다.
산출:압축 풀기 -Z -1 abc.zip
__MACOSX/
__MACOSX/_abc.csv
abc.csv
산출:압축 풀기 -Z -1 /user/sam/abc.zip -d /user/sam/2019-05-22/
caution: not extracting -d ignored
abc.csv
__MACOSX
__MACOSX/._abc.csv
여기의 출력은 abc.csv 파일이어야 합니다.
산출:압축 풀기 -Z -1 xyz.zip
xyz.csv
산출:압축 풀기 -Z -1 /user/sam/xyz.zip -d /user/sam/2019-05-22/
caution: not extracting -d ignored
xyz.csv
답변1
-x
다음과 같이 옵션을 인수로 사용할 수 있습니다 '*/*'
.
unzip filename.csv.zip -x '*/*' -d /final_directory
caution: excluded filename not matched: */*
파일과 유사한 상황에서 경고를 표시하지 않으려면 xyz.zip
다음을 사용할 수 있습니다.
unzip filename.csv.zip -x '*/*' -d /final_directory 2> /dev/null
노트: 기억하세요. 이렇게 하면 모든 항목이 억제됩니다.표준 에러산출. 그런 종류의 경고를 표시하지 않도록 명령에 지시하는 것이 더 좋습니다 unzip
(해당 종류의 경고만). 설명서를 잠깐 살펴봤지만 옵션이 표시되지 않았습니다. 따라서 귀하의 경우 이 경고만 억제하도록 지시할 수 없다면 unzip
아무것도 억제하지 않는 것이 더 낫다고 생각합니다. 경고는 아무런 해를 끼치지 않기 때문입니다. 그러나 모든 오류를 삭제하면 중요한 정보를 놓칠 수 있습니다.