shell查询指定目录下,大于指定时间,指定时间精确到秒,并且开头为6304-BCUST-的文件,如果有多个,取时间最早的 ,输出该文件目录。输出该文件文件名,输出该文件的创建日期。注意指定路径和指定时间需要定义为变量
时间: 2024-03-13 20:42:22 浏览: 16
好的,以下是符合您要求的 Shell 命令:
```
#!/bin/bash
path="/path/to/directory"
time="2022-05-20 10:10:10"
file=$(find "$path" -type f -name "6304-BCUST-*" -newermt "$time" -printf '%T@ %p\n' | sort -n | head -n 1 | awk '{print $2}')
dir=$(dirname "$file")
name=$(basename "$file")
created=$(date -r "$file" +"%Y-%m-%d %H:%M:%S")
echo "目录:$dir"
echo "文件名:$name"
echo "创建日期:$created"
```
在这个脚本中,我们将指定路径和指定时间定义为了变量`path`和`time`。然后使用`find`命令查找指定目录下大于指定时间,名称以`6304-BCUST-`开头的文件,并按时间戳排序取最早的一个文件。使用`dirname`和`basename`命令分别获取文件的目录和文件名,使用`date`命令获取文件的创建日期。最后使用`echo`命令输出这些结果。
请注意,在使用脚本之前需要将`path`和`time`变量替换为实际的路径和时间。另外,这个脚本需要保存为一个文件,并赋予执行权限后才能运行。
相关问题
shell查询指定目录下,大于指定时间,指定时间精确到秒,并且开头为6304-BCUST-的文件,如果有多个,取时间最早的
可以使用以下命令来查询指定目录下大于指定时间,时间精确到秒,并且开头为`6304-BCUST-`的文件,并且取时间最早的文件:
```
find /path/to/directory -type f -name "6304-BCUST-*" -newermt "2022-05-20 10:10:10" -printf '%T@ %p\n' | sort -n | head -n 1 | awk '{print $2}'
```
其中:
- `/path/to/directory`是指定的目录路径,可以替换成需要查询的目录路径。
- `-type f`表示要查找的是文件而非目录。
- `-name "6304-BCUST-*"`表示要查找的文件名必须以`6304-BCUST-`开头。
- `-newermt "2022-05-20 10:10:10"`表示查询大于指定时间的文件,时间精确到秒。
- `-printf '%T@ %p\n'`表示以时间戳和文件名的形式输出结果。
- `sort -n`表示按时间戳排序,时间戳越小表示时间越早。
- `head -n 1`表示取最早的一个文件。
- `awk '{print $2}'`表示只输出文件名,去掉时间戳。
请注意,以上命令中的时间和文件名需要根据实际情况进行替换。
shell查询指定目录下满足前缀为6304-BCUST-的文件,如果有多个,取修改时间最小的,输出文件目录
可以使用以下命令来查询指定目录下满足前缀为6304-BCUST-的文件,如果有多个,取修改时间最小的,输出文件目录:
```shell
ls -tr /path/to/directory/6304-BCUST-* | head -n 1
```
其中,`/path/to/directory/` 是指定的目录路径,`6304-BCUST-*` 是文件名的通配符,`ls -tr` 是按照修改时间逆序输出文件列表,`head -n 1` 是取列表中的第一个文件。
注意:如果要查询目录下的所有子目录,可以添加 `-R` 参数,即 `ls -trR /path/to/directory/6304-BCUST-* | head -n 1`。