shell查询指定目录下,大于指定时间,指定时间精确到秒,并且开头为6304-BCUST-的文件,如果没找到,输出“没找到”,如果找到的有多个,输出时间最早的那个文件 ,输出该文件目录。输出该文件文件名,输出该文件的创建日期。注意指定路径和指定时间需要定义为变量
时间: 2024-03-13 09:42:44 浏览: 55
好的,这个问题可以用如下的shell脚本来解决:
```shell
#!/bin/bash
# 定义指定目录和指定时间
dir_path="/path/to/dir"
target_time="2022-01-01 00:00:00"
# 查找满足条件的文件
result=$(find $dir_path -type f -name "6304-BCUST-*" -newermt "$target_time" -print0 2>/dev/null | xargs -0 ls -1 -t | head -n 1)
# 输出结果
if [ -z "$result" ]; then
echo "没找到"
else
echo "目录:$(dirname $result)"
echo "文件名:$(basename $result)"
echo "创建日期:$(date -r $result)"
fi
```
需要替换脚本中的`/path/to/dir`和`2022-01-01 00:00:00`为指定的目录和时间。脚本中使用了`find`命令查找指定目录下的文件,`-type f`表示只查找普通文件,`-name "6304-BCUST-*"`表示文件名以`6304-BCUST-`开头,`-newermt "$target_time"`表示文件修改时间比指定时间新,`-print0`和`xargs -0`用于处理文件名中可能包含空格等特殊字符的情况,`ls -1 -t`用于按照修改时间倒序排序,`head -n 1`用于取第一个文件,即修改时间最早的文件。如果找到了符合条件的文件,就输出该文件所在的目录、文件名和创建日期,否则输出"没找到"。
阅读全文