diff 및 ls를 사용하여 원격 폴더에서 변경된 파일 감지

diff 및 ls를 사용하여 원격 폴더에서 변경된 파일 감지

읽기 권한이 있는 원격 디렉터리가 있습니다. 마지막 반복 이후 변경된 파일 목록을 생성하고 싶습니다.

내 생각은 이렇습니다.

$ cp output.new output.old
$ ll > output.new
$ diff output.new output.old > list.files

아이디어는 list.files다음과 같이 "수정 타임스탬프"가 다른 파일이나 새 파일의 이름과 상대 경로만 갖는 것입니다.

file1
files2
dir1/file3
dir2/file4

그래서 나는 diffls매개 변수에 대해 묻고 있습니다.

답변1

#!/bin/sh

topdir=/some/directory
stampfile="$HOME/.stamp"

if [ -f "$stampfile" ]; then
    find "$topdir" -type f -newer "$stampfile"
fi

touch "$stampfile"

이 작은 스크립트는 스크립트가 실행될 때마다 업데이트되는 타임스탬프 파일을 유지 관리합니다. $topdir.txt 의 타임스탬프 파일보다 최신 수정 타임스탬프가 있는 디렉터리의 모든 파일을 찾습니다 $stampfile.

스크립트를 처음 실행하면 타임스탬프 파일이 존재하지 않으므로 스크립트는 아무것도 출력하지 않습니다. 후속 실행 시 스크립트는 마지막 실행 이후 수정된 파일을 나열합니다.

관련 정보