在shell脚本中,查找指定路径下的文件夹列表,根据创建时间排序,取大于指定日期的最早的
时间: 2024-03-11 14:47:36 浏览: 230
在指定路径下找某个类型的文件
3星 · 编辑精心推荐
您可以使用`find`和`stat`命令来实现在指定路径下查找文件夹列表,并根据创建时间排序,取大于指定日期的最早的文件夹。
以下是一个示例脚本:
```bash
#!/bin/bash
# 指定要查找的路径
path="/path/to/search"
# 指定要查找的文件夹名称
foldername="myfolder"
# 指定要比较的日期,格式为YYYY-MM-DD
date="2021-06-01"
# 查找文件夹列表,获取每个文件夹的详细信息,并按创建时间排序
folders=$(find "$path" -type d -name "$foldername" -exec stat -c "%Y %n" {} \; | sort -n | awk '{print $2}')
# 遍历文件夹列表,找到大于指定日期的最早的文件夹
for folder in $folders; do
# 获取文件夹的创建时间
created=$(stat -c "%y" "$folder" | awk '{print $1}')
# 比较日期
if [[ "$created" > "$date" ]]; then
# 输出文件夹路径,并退出循环
echo "$folder"
break
fi
done
```
该脚本使用`find`命令查找指定路径下名称为`$foldername`的文件夹,并使用`stat`命令获取每个文件夹的详细信息,包括创建时间。然后,使用`sort`命令按创建时间排序,并使用`awk`命令提取文件夹路径。最后,遍历文件夹列表,比较每个文件夹的创建时间和指定的日期,找到大于指定日期的最早的文件夹,并输出其路径。
阅读全文