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