shell查询指定目录下满足前缀为6304-BCUST-的文件,如果有多个,取修改时间最小的,输出文件目录。如果没有,输出没找到
时间: 2024-03-16 17:44:50 浏览: 20
可以使用以下命令来查询指定目录下满足前缀为6304-BCUST-的文件,如果有多个,取修改时间最小的,输出文件目录。如果没有,输出"没找到"。
```shell
file=$(ls -tr /path/to/directory/6304-BCUST-* 2>/dev/null | head -n 1)
if [ -n "$file" ]; then
echo $file
else
echo "没找到"
fi
```
其中,`/path/to/directory/` 是指定的目录路径,`6304-BCUST-*` 是文件名的通配符,`ls -tr` 是按照修改时间逆序输出文件列表,`head -n 1` 是取列表中的第一个文件。`2>/dev/null`是将错误输出重定向到空设备,以避免在没有匹配的文件时输出错误信息。
通过判断 `$file` 是否为空来确定是否找到了文件,如果找到了,则输出文件路径,否则输出"没找到"。
相关问题
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`。
shell查询指定目录下满足前缀为6304-BCUST-的文件,如果有多个,取修改时间最小的,输出文件目录,输出文件名。如果没有,输出没找到
可以使用以下命令来查询指定目录下满足前缀为`6304-BCUST-`的文件,如果有多个,取修改时间最小的,输出文件目录和文件名。如果没有找到,输出`没找到`。
```shell
files=$(ls -tr /path/to/directory/6304-BCUST-* 2>/dev/null)
if [ -n "$files" ]; then
file=$(echo "$files" | head -n 1)
echo "最新文件目录:$file"
echo "最新文件名:$(basename $file)"
else
echo "没找到"
fi
```
其中,`/path/to/directory/` 是指定的目录路径,`6304-BCUST-*` 是文件名的通配符,`ls -tr` 是按照修改时间逆序输出文件列表,`head -n 1` 是取列表中的第一个文件。`2>/dev/null`是将错误输出重定向到空设备,以避免在没有匹配的文件时输出错误信息。
通过判断 `$files` 是否为空来确定是否找到了文件,如果找到了,则输出文件路径和文件名,否则输出"没找到"。