我有一个Bash脚本,每5秒重复复制一次文件.但这是一种触觉矫枉过正,因为通常没有变化.
我知道Linux命令,watch但因为这个脚本将用于OS X计算机(没有watch,我不想让每个人都安装macports)我需要能够检查文件是否被修改使用直接Bash代码.
我应该检查文件修改时间吗?我怎样才能做到这一点?
编辑:我希望扩展我的脚本,而不仅仅是复制文件,如果它检测到更改.那么有一种纯粹的bash方式吗?
Gle*_*ter 13
rsync如果您要管理大量文件树,我倾向于同意答案,但只有当源比目标更新时,您才可以使用-u(--update)标志来复制文件.
中央处理器
编辑
由于您已更新问题以表明您想要执行其他操作,因此您需要使用()内置命令中的-nt检查:[test
#!/bin/bash
if [ $1 -nt $2 ]; then
echo "File 1 is newer than file 2"
else
echo "File 1 is older than file 2"
fi
Run Code Online (Sandbox Code Playgroud)
从手册页:
file1 -nt file2
True if file1 is newer (according to modification date) than
file2, or if file1 exists and file2 does not.
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
OS X有stat命令.这样的东西应该给你一个文件的修改时间:
stat -f '%m' filename
Run Code Online (Sandbox Code Playgroud)
GNU等价物将是:
stat --printf '%Y\n' filename
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12511 次 |
| 最近记录: |