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

spe*_*ndo 0 bash comparison timestamp wget

我做的事情

wget --user=userName --password=passWord  --timestamping https://url.to/a/file.csv.gz
gzip -cd file.csv.gz > file.csv
Run Code Online (Sandbox Code Playgroud)

(未测试)

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

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

但是,如果远程文件比本地文件新,则只应执行第2行.

我怎样才能做到这一点?

Bri*_*ell 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
Run Code Online (Sandbox Code Playgroud)

在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
Run Code Online (Sandbox Code Playgroud)

其他系统可能有不同的参数stat; 检查man stat你的系统,或者help stat它是否是内置的shell.