두 디렉터리의 파일 날짜 비교

두 디렉터리의 파일 날짜 비교

같은 이름의 파일이 포함된 두 개의 디렉터리가 있습니다. 기본적으로 생성 날짜가 최신인 경우 dir1/file.txt를 dir2/file.txt로 바꾸고 싶습니다. 하지만 if 조건에서 뭔가 빠진 것 같아요.

#!/bin/bash
for i in /dir1/*; do
        nameFIRR=$(basename "$i")
        dateINPUT="$(date -r $i)"
        dateOUTPUT="$(date -r /dir2/$nameFIRR)"

        if [ $dateINPUT -ge $dateOUTPUT ];
        then
         cp -u $i /dir2/$nameFIRR
        fi
done

답변1

두 가지 일반적인 솔루션이 있습니다.

  1. rsync하나는 다음과 같습니다:

rsyncman rsync자세한 내용은 수많은 옵션이 포함된 강력한 도구입니다 . 그러나 간단히 요약하면 명령은 다음과 같습니다.

rsync [옵션] 소스 대상

귀하의 경우에는 다음과 같이 하면 됩니다.

#!/bin/bash
rsync -t dir1/file.txt dir2/file.txt 
  1. 옵션이 있는 "복사"( cp) 명령은 -u또 다른 명령입니다(Stephen Kitt의 의견을 기반으로 함).
#!/bin/bash
cp -u dir1/file.txt dir2/file.txt 

관련 정보