두 디렉터리의 콘텐츠 스트리밍 비교 [닫기]

두 디렉터리의 콘텐츠 스트리밍 비교 [닫기]

다음 작업으로 스트리밍하는 방법(하나의 명령 또는 스크립트로):

  • 두 디렉터리 dir1과 dir2의 내용(파일 및 폴더)을 비교합니다.
  • dir1 디렉터리에 새 파일이 나타나면 해당 파일을 dir2에 복사하기 시작하고 동시에 처리기를 사용하여 처리합니다.

diff -> 복사 -> some.sh 실행

답변1

다음 명령을 사용하여 dir1의 내용을 file1.txt에 나열합니다.

ls -ltr | awk '{print $9}'  > /var/tmp/file1.txt

file1.txt에 다음 내용이 포함되어 있습니다.

t1
1
l.sh
r.txt
l.py
l.txt
p.txt

다음 명령을 사용하여 dir2의 내용을 file2.txt에 나열합니다.

ls -ltr | awk '{print $9}' > /var/tmp/file2.txt
t1
1
l.sh
r.txt
l.py
l.txt

이제 file1.txt와 비교하여 이 명령은 file2.txt에 없는 콘텐츠를 찾아서 디렉터리 2에 복사합니다.

awk 'NR==FNR {a[$1];next}!($1 in a) {print $1}' file2.txt file1.txt |
awk '{print "cp -rvfp" " " "directory1path”$1 " " "directory2path"}' |
sh

답변2

이 작업은 두 가지 방법으로 수행할 수 있습니다.

  1. 소프트 링크 사용

    대상 폴더에 소스의 또 다른 복사본을 얻으려면 이 명령을 사용하십시오.

    ln -s  source destination
    

    단, 이 경우 소스 파일이나 디렉터리를 삭제하면 링크가 깨져서 접근할 수 없게 됩니다.

  2. rsync 사용

    rsync -avzh sourcepath destinationpath
    

    이 명령은 소스와 대상을 자동으로 동기화합니다. 지속적으로 확인하고 업데이트할 수 있도록 이 명령에 대해 1분 crontab을 예약하십시오.

관련 정보