shell 来遍历某个目录下不同层级的所有文件并判断时间是不是今天
时间: 2023-02-13 13:56:44 浏览: 189
可以使用以下命令来遍历目录下的所有文件并判断它们的修改时间是否是今天:
```bash
# 进入需要遍历的目录
cd /path/to/directory
# 遍历目录下的所有文件
for file in *
do
# 获取文件的修改时间
modification_time=$(stat -c %y "$file")
# 判断修改时间是否是今天
if [ "$modification_time" == "$(date '+%Y-%m-%d')" ]
then
# 如果是今天,打印文件名
echo "$file"
fi
done
```
上面的代码使用了 `stat` 命令来获取文件的修改时间,然后使用 `date` 命令来获取今天的日期,并使用 `if` 语句来判断两者是否相等。如果相等,就打印文件名。
注意,上面的代码仅遍历当前目录下的文件,如果你需要遍历整个目录树,可以使用 `find` 命令:
```bash
# 遍历 /path/to/directory 下的所有文件
find /path/to/directory -type f -exec stat -c %y {} \; | while read modification_time
do
# 判断修改时间是否是今天
if [ "$modification_time" == "$(date '+%Y-%m-%d')" ]
then
# 如果是今天,打印文件名
echo "$file"
fi
done
```
上面的代码使用了 `find` 命令来遍历所有文件,然后使用 `stat` 命令来获取文件的修改时间,并使用 `while` 循环和 `if` 语句来判断修改时间是否
阅读全文