Bash 将时间戳与“比较”;“在线文件”;
我做一些类似的事情Bash 将时间戳与“比较”;“在线文件”;,bash,comparison,timestamp,wget,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行 我该怎么做呢?只需测试文件.csv.gz的修改时间是否比文件.csv更新 在Linux上: i
wget --user=userName --password=passWord --timestamping https://url.to/a/file.csv.gz
gzip -cd file.csv.gz > file.csv
(未测试)
请注意,服务器需要身份验证
仅当文件比本地文件更新时,才会下载该文件。这很好
但是,只有当远程文件比本地文件新时,才应执行第2行
我该怎么做呢?只需测试
文件.csv.gz
的修改时间是否比文件.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):
其他系统可能对
stat
有不同的参数;检查您系统上的man stat
,或者help stat
如果它是shell内置的。只需测试文件.csv.gz
的修改时间是否比文件.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):
其他系统可能对
stat
有不同的参数;在你的系统上检查man stat
,或者help stat
如果它是shell内置的。刚刚尝试过。。。我收到一条错误消息,如stat:can't read file system information
(很抱歉,我的计算机上没有英文)@speendo很抱歉,stat
的参数在Linux和BSD上是不同的(例如我在Mac OS X上阅读文档)。我编辑了我的答案,将两个版本都包括在内;有关详细信息,请检查stat
的参数。特别是,您需要一个格式字符串,该字符串以秒为单位提供自纪元以来的修改日期。刚刚尝试过。。。我收到一条错误消息,如stat:can't read file system information
(很抱歉,我的计算机上没有英文)@speendo很抱歉,stat
的参数在Linux和BSD上是不同的(例如我在Mac OS X上阅读文档)。我编辑了我的答案,将两个版本都包括在内;有关详细信息,请检查stat
的参数。特别是,您需要一个格式字符串,该字符串以秒为单位给出自历元以来的修改日期。