zip 파일 디렉터리를 탐색하고 .zip 확장자가 없는 파일을 찾아 추가하는 방법

zip 파일 디렉터리를 탐색하고 .zip 확장자가 없는 파일을 찾아 추가하는 방법

압축된 아카이브 파일로 추정되는 하위 디렉터리가 포함된 하위 디렉터리가 있습니다. 구조는 아래와 같습니다

ParentDirectory
|-SubDirectoryA
 |-File Mr X.zip
 |-File Mr. X
|-SubDirectoryB
 |-File Mrs X
 |-File Mrs. L.T.D X

.zip 확장자가 없는 파일을 업데이트하려고 합니다. 예상 결과는 다음과 같습니다.

ParentDirectory
|-SubDirectoryA
 |-File Mr X.zip
 |-File Mr. X.zip
|-SubDirectoryB
 |-File Mrs X.zip
 |-File Mrs. L.T.D X.zip

현재 코드가 있지만 확장 프로그램을 연결하는 방법을 잘 모르겠습니다. 또한 아래 코드는 접두사 변수에서 발생하는 마침표를 찾고 있지만 일부 파일 이름에는 마침표가 포함되어 있다는 것을 깨달았습니다. 아래는 내 시도입니다

for dir in */; do
    (cd "$dir" && for fname in *.*; do
         prefix=${fname%.*}
        [ ! -f "$fname" ] || [ -f "$prefix.zip" ] && continue
         mv -- "$fname" "${fname%}.zip"  
    done)
done

답변1

정규식을 사용하여 압축 파일을 필터링할 수 있습니다.

re="*.zip"

for dir in */; do
    (cd "$dir" && for fname in *; do
         case "${fname}" in
             $re)
                 continue
             ;;
             *)
                 mv -- "$fname" "${fname%}.zip"
             ;;
         esac
    done)
done

관련 정보