我有两个包含同名文件的目录。基本上,如果 dir1/file.txt 的创建日期较新,我想用 dir2/file.txt 替换 dir1/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
是另一个(根据斯蒂芬·基特的评论):
#!/bin/bash
cp -u dir1/file.txt dir2/file.txt