소스 디렉터리에서 수정된 파일의 경로만 rsync 및 grep하는 방법

소스 디렉터리에서 수정된 파일의 경로만 rsync 및 grep하는 방법

grep즉, rsync를 사용하여 경로와 파일 이름을 변경(추가, 삭제, 수정)하고 인쇄하는 방법이 있습니까 ?

다음 명령을 사용해 보았지만 경로와 파일을 별도의 줄로 수정했습니다.

rsync -avnc $source $destination
source/10101/10102/10103/
source/10101/10102/10103/demo.fts

참고: 소스 코드에는 수천 개의 하위 디렉터리가 있으며 절대 경로로 수정된 파일만 인쇄하고 싶습니다.

답변1

디렉터리의 타임스탬프나 사용자/그룹 설정 또는 권한이 대상 디렉터리와 다르기 때문에 디렉터리 경로를 가져오는 것입니다.

디렉터리 타임스탬프 확인을 중지하려면 rsync다음 --omit-dir-times플래그를 사용하세요.

rsync -avc -n --omit-dir-times "$source/" "$target"

rsync파일 및 디렉터리의 절대 경로는 표시되지 않고 전송되는 최상위 디렉터리에 대한 상대 경로가 표시됩니다 .

--itemize-changes(또는 -i) 대신 --verbose(또는 )을 사용하면 -v다음에 대한 자세한 정보를 얻을 수 있습니다.대상의 파일이 업데이트되고 있습니다.

예(출력에 설명 추가):

$ rsync -ani s/ t
.d..t...... ./          # directory timestamp differs
>f+++++++++ file        # new file

$ rsync -a s/ t

$ touch s/file
$ rsync -ani s/ t
>f..t...... file        # file timestamp differs

$ echo hello >s/file
$ rsync -ani s/ t
>f.st...... file        # file size and timestamp differs

$ rsync -acni s/ t
>fcst...... file        # file size timestamp and checksum differs

$ rm s/file
$ rsync -acni s/ t
.d..t...... ./          # directory timestamp differs
$ rsync -acni --delete s/ t
*deleting   file        # file has been deleted in source
.d..t...... ./          # directory timestamp differs

--itemize-changes시스템 설명서에서 이 옵션에 대한 설명서를 참조하세요 .rsync

관련 정보