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