shell 判断文件时间
时间: 2023-10-29 12:07:19 浏览: 64
在 shell 中,可以使用 `stat` 命令来获取文件的时间信息。具体的命令格式如下:
```
stat -c %Y 文件名
```
其中 `%Y` 表示输出文件的修改时间,以秒数表示。如果需要输出其它时间,可以使用 `%X` 表示访问时间, `%Z` 表示状态改变时间。
需要注意的是,这里的时间表示的是从 1970 年 1 月 1 日 0 点 0 分 0 秒起到该时间的秒数,也称为 Unix 时间戳。所以如果需要比较时间大小,可以将时间戳进行比较。例如:
```
if [ $(stat -c %Y 文件1) -gt $(stat -c %Y 文件2) ]; then
echo "文件1比文件2更新"
else
echo "文件2比文件1更新"
fi
```
上述代码中,我们将文件1和文件2的修改时间进行比较,如果文件1的修改时间比文件2晚,则输出“文件1比文件2更新”,否则输出“文件2比文件1更新”。
相关问题
shell判断文件创建时间为180天之前
要判断一个文件的创建时间是否为180天之前,可以使用 `find` 命令结合 `-ctime` 参数。
具体的命令如下所示:
```
find /path/to/dir -type f -ctime +180
```
其中,`/path/to/dir` 是需要查找的目录路径,`-type f` 表示只查找普通文件,`-ctime +180` 表示文件的创建时间早于180天前。如果要查找修改时间或访问时间早于180天前的文件,可以使用 `-mtime` 和 `-atime` 参数。
如果找到了符合条件的文件,`find` 命令会将文件的路径打印到终端上。如果需要对这些文件执行其他操作,可以使用 `-exec` 参数来指定需要执行的命令。例如,可以使用下面的命令将找到的文件删除:
```
find /path/to/dir -type f -ctime +180 -exec rm {} \;
```
这个命令会将所有创建时间早于180天前的文件都删除掉。需要注意的是,删除操作非常危险,请谨慎使用。
shell if判断时间段
在Shell脚本中,可以使用if语句来判断时间段。可以通过获取当前时间并将其格式化为时分的形式,然后使用逻辑运算符来判断是否在指定的时间段内。下面是一个示例代码:
```
# 获取当前时间,格式为时分,例如当前是上午8:50,hh=850
hh=`date '+%H%M'`
# 早上7:30--7:45 执行自动做早餐的任务
if \[ $hh -ge 730 -a $hh -le 745 \]; then
echo "早上 -- 自动做早餐任务"
# 中午11:52--12:15 执行做饭任务
elif \[ $hh -ge 1152 -a $hh -le 1215 \]; then
echo "午饭时间 -- 做饭任务"
# 下午17:23--17:40 执行自动浇花任务
elif \[ $hh -ge 1723 -a $hh -le 1740 \]; then
echo "晚上 -- 自动浇花任务"
# 不在指定的时间段内,不做任何操作
else
echo "当前时间不在指定的时间段内"
fi
```
在这个示例中,我们使用了date命令来获取当前时间,并将其格式化为时分的形式。然后,我们使用if语句和逻辑运算符来判断当前时间是否在指定的时间段内,并执行相应的任务。如果当前时间不在任何一个时间段内,将输出"当前时间不在指定的时间段内"。
#### 引用[.reference_title]
- *1* *2* [Shell脚本if判断文件或目录是否存在以及文件覆盖与备份](https://blog.csdn.net/wfq784967698/article/details/99330622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [【shell脚本】在不同时间段,执行对应任务](https://blog.csdn.net/qq_41204464/article/details/105712054)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]