检查子目录

检查子目录

A)我使用以下代码来获取文件的修改日期。但这也是选择子目录并因此返回错误。我如何解决这个问题。

for file in $1/*; do
        echo `stat -c %y $file | cut -d ' ' -f1`
done

$1 是我传递的目录

B)还有什么办法可以做到这一点。我需要传递目录和日期范围作为命令行参数,并列出该日期范围内的文件和修改日期。例如output.sh /home/user/desktop 2014-10-07 2014-11-17应该列出该目录中在该时间间隔内修改的所有文件

答案1

要查找目录中$1早于 1000 分钟且早于 2000 分钟的所有文件:

find "$1" -maxdepth 1 -type f -mmin +1000 -mmin -2000

如果您想递归搜索子目录,请删除-maxdepth 1.

如果您希望以整数天而不是分钟来指定时间,请使用-mtime

find . -maxdepth 1 -type f -mtime +20 -mtime -26

跳过目录时循环文件

-d可用于测试目录并continue跳过它们:

for file in "$1"/*; do
    [ -d "$file" ] && continue
    echo $(stat -c %y $file | cut -d ' ' -f1)
done

相关内容