将时间戳与“在线文件”进行比较

时间:2012-11-19 23:00:09

标签: bash comparison timestamp wget

我喜欢

wget --user=userName --password=passWord  --timestamping https://url.to/a/file.csv.gz
gzip -cd file.csv.gz > file.csv

(未经测试)

请注意,服务器需要身份验证。

如果文件比本地文件新,则只下载该文件。这很好。

但是,只有在远程文件比本地文件更新时才应执行第2行。

我该怎么做?

1 个答案:

答案 0 :(得分:6)

只需测试file.csv.gz的修改时间是否比file.csv更新。

在Linux上:

if [ $(stat -c '%Y' file.csv.gz) -gt $(stat -c '%Y' file.csv) ]; then
    gzip -cd file.csv.gz > file.csv
fi

在BSD上(如Mac OS X):

if [ $(stat -f '%m' file.csv.gz) -gt $(stat -f '%m' file.csv) ]; then
    gzip -cd file.csv.gz > file.csv
fi

其他系统可能有stat的不同参数;检查系统上的man stat,或help stat是否为内置shell。