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
应该列出该目录中所有在这次intervel修改过的文件
要查找目录$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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句