같은 이름의 파일이 포함된 두 개의 디렉터리가 있습니다. 기본적으로 생성 날짜가 최신인 경우 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
두 가지 일반적인 솔루션이 있습니다.
rsync
하나는 다음과 같습니다:
rsync
man rsync
자세한 내용은 수많은 옵션이 포함된 강력한 도구입니다 . 그러나 간단히 요약하면 명령은 다음과 같습니다.
rsync [옵션] 소스 대상
귀하의 경우에는 다음과 같이 하면 됩니다.
#!/bin/bash
rsync -t dir1/file.txt dir2/file.txt
- 옵션이 있는 "복사"(
cp
) 명령은-u
또 다른 명령입니다(Stephen Kitt의 의견을 기반으로 함).
#!/bin/bash
cp -u dir1/file.txt dir2/file.txt