또한 긴 목록 파일을 새 위치로 이동합니다.

또한 긴 목록 파일을 새 위치로 이동합니다.

저는 ExifTool이라는 훌륭한 프로그램을 사용하여 많은 수의 파일 이름을 재귀적으로 바꿉니다.

사용 예는 다음과 같습니다.

$ exiftool -r -ext JPG '-FileName<CreateDate' -d %Y%m%d_%H%M%S.jpg .
Error: './folder1/110310_135433.jpg' already exists - ./folder1/source.jpg
Warning: No writable tags found - ./folder2/110404_095111.jpg
   68 directories scanned
 1650 image files updated
    5 image files unchanged
    2 files weren't updated due to errors

매우 큰 이미지 배치로 작업할 때 오류로 인해 업데이트되지 않는 파일 수가 수백 개에 달하는 경우가 많기 때문에 각 파일을 개별적으로 이동할 수 없습니다 mv.

추가 처리를 위해 오류/경고가 있는 파일을 별도의 디렉터리로 동시에 이동하고 싶습니다.

터미널 출력에서 ​​문제 파일의 경로를 추출하여 함께 이동해야 하는데 어떻게 해야 할지 모르겠습니다.

어떻게 해야 하나요?

어쨌든 저는 우분투 11.10을 사용하고 있습니다.

답변1

그러면 오류/경고에서 파일 이름이 추출되고 exiftool"처리되지 않은" 폴더 아래에 해당 파일만 포함된 디렉터리 트리의 복사본이 생성됩니다. 이름은 같지만 소스 디렉터리가 다른 파일을 덮어쓰는 위험을 피하기 위해 단일 디렉터리로 이동하려는 시도는 없었습니다.

exiftool ... 2>&1 | tee exiftool.log | egrep '^(Error|Warning)' | \
    sed 's/^Error: .* already exists - //;s/^Warning: .* - //' | \
        while IFS= read -r img; do
            rsync -vR -- "$img" unprocessed/
            #rm -v -- "$img"
        done

sed섹션에서는 제공된 예제의 출력만 고려합니다. 도구 및 가능한 출력 메시지에 익숙하지 않습니다.

편집: 이 rm부분은 먼저 시도해 보는 것이 좋으므로 주석 처리되었습니다.

답변2

ExifTool의 솔루션은 파일 이름에 %c(또는 -d 매개변수의 %%c)를 추가하는 것입니다. 이로 인해 중복된 이름을 가진 파일에 복사본 번호가 추가됩니다.

관련 정보