하나의 디렉토리에 많은 이미지를 모아야합니다. 이러한 이미지의 대부분은 파일 이름이 동일합니다.
일부 안전한 버전이 mv
대상 파일 이름이 이미 그렇게 존재하는 경우 자동으로 파일의 이름을 변경 것 pic1.jpeg
같은 것을하게는 pic1_2.jpeg
?
나는 내 자신의 파이썬 스크립트를 작성할 수 있지만 내가 할 수 있도록 이와 같은 것이 있어야합니다.
find . -type f -name *.jpg -exec mvsafe '{}' /targetpath/ \;
답변
mv는 이미 이것을 최소한 데비안에서 지원합니다.
mv --backup=t <source_file> <dest_file>
mv (1) 맨 페이지에서 볼 수 있듯이
--backup[=CONTROL]
make a backup of each existing destination file
The backup suffix is `~', unless set with --suffix or SIM‐
PLE_BACKUP_SUFFIX. The version control method may be selected via the
--backup option or through the VERSION_CONTROL environment variable.
--backup=t
“숫자 백업 만들기” 를 의미 하려면 다음과 같이 호출하십시오.
env VERSION_CONTROL=numbered mv --backup=t <source_file> <dest_file>
(dest_file은 물론 디렉토리 일 수 있습니다).
편집 : 이후 버전 (최소한 GNU coreutils 8.22이지만 이미 훨씬 이전 버전)에서는 간단히 작성할 수 있습니다.
mv --backup=numbered <source_file> <dest_file>