복사가 완료된 후 대상 파일의 이름을 변경할 수 있습니까(접두사로 일부 타임스탬프 추가) rsync
?
예를 들어 다음을 사용하여 접미사를 사용하여 대상 파일의 이름을 변경할 수 있습니다.
rsync --append -arzvv --backup --suffix='_2015_09_10' /path/to/src/file /path/to/dst
하지만 타임스탬프를 접두사로 추가하고 싶기 때문에 대상에는 2015_09_10_file
대신 다음 과 같은 내용이 표시됩니다 file_2015_09_10
.
답변1
실제로는 가능하지만 약간 해킹적입니다. 접미사로만 사용됩니다.
댓글을 읽으신 것처럼 --suffix
덮어쓴 파일을 백업하기 위한 것입니다. 따라서 소스에서 대상으로 동일한 파일을 동기화하여 rsync가 덮어쓰기( -I
)하도록 강제하지만 소스 파일이 -u
더 새로운 경우(절대 그렇지 않음) 해당 -b, --backup
옵션을 사용하고 백업 디렉터리 및 접미사를 정의하는 경우에만 해당됩니다.
rsync -Iu --backup --suffix='_2015_09_10' --backup-dir=/path/to/dst /path/to/src/file /path/to/src/file
답변2
Rsync는 개별 파일 수준에서 이 작업을 수행할 수 없지만 전체 트리 작업을 일부 지원합니다. 예를 들어:
/path/to/dst-2019-07-31/file
/path/to/dst-2019-07-30/file
/path/to/dst-2019-07-29/file
...
세 가지 옵션이 있습니다:
--compare-dest=DIR
새 디렉토리에만 새 파일이 생성됩니다. 목록에 추가해야 하므로 이는 아마도 원하는 것이 아닐 수도 있습니다.모두이전 버전의 디렉토리.--copy-dest=DIR
DIR
변경되지 않은 파일을 원본에서 전송하는 대신 대상 으로 복사합니다 .--link-dest=DIR
동일하지만 파일 내용을 복사하지 않기 때문에 대상에서 훨씬 적은 디스크 공간을 사용합니다.
다음과 같이 사용합니다.
rsync -a --link-dest=/path/to/dst-$YESTERDAY /path/to/src /path/to/dst-$TODAY
답변3
rsync로 전송된 개별 파일의 이름을 바꾸는 것은 매우 간단합니다.
rsync /path/to/original_name.txt /path/new/my_new_file_name.txt
대상 경로에 파일 이름을 지정하면 새 파일 이름이 됩니다. OP의 경우 사용하기를 원하므로 도움이 되지 않습니다.부분기존 파일 이름을 사용하여 여러 파일의 이름을 바꿉니다. 그러나 Q&A를 보다 일반적으로 유용하게 만들기 위해 이것을 추가하고 있습니다.