使用该stat
命令可以查看并格式化上次访问目录的日期。这adate
是否可以使用某种方式find
查找在特定日期之前更改的目录?test
答案1
Shell脚本
find
您可以仅使用、sed
、sort
(以及echo
“用法”部分)尝试以下 shell 脚本。find
可以做 可以做的事情stat
。唯一的区别是一个!
字符,它否定了测试-newerat
。
olderdate
:
#!/bin/bash
if [ $# -ne 2 ]
then
echo "Usage: $0 <reference date> <directory> "
echo "Example: $0 2018-11-30 ."
exit
fi
find "$2" -type d ! -newerat "$1" -printf "%AY-%Am-%Ad %AT %p\n" |
sed -e 's%\..* /% /%' \
-e 's%\..* \.% .%' | sort
newerdate
:
#!/bin/bash
if [ $# -ne 2 ]
then
echo "Usage: $0 <reference date> <directory> "
echo "Example: $0 2018-11-30 ."
exit
fi
find "$2" -type d -newerat "$1" -printf "%AY-%Am-%Ad %AT %p\n" |
sed -e 's%\..* /% /%' \
-e 's%\..* \.% .%' | sort
您不仅指定日期,还指定时间,hours
或者hours:minutes
如果hours:minutes:seconds
引用第二个参数,
./olderdate '2018-12-19 18' /path
关于“自动”修改访问时间的评论
我做了一些测试,并注意到在某些情况下find
或stat
会修改搜索目录的访问日期和时间。当目录中的某些内容发生更改但目录本身的访问时间尚未更新时,似乎会发生这种情况。
在这些情况下,访问时间将设置为当前时间。但是,当find
或stat
再次搜索目录时,访问日期和时间将保持不变(除非目录中再次更改了某些内容)。
答案2
您可以从以下内容开始:
MY_DATE="2018-12-19 06:30"
for i in $(find . -type d)
do
if [[ $(date -d"$(stat $i | grep ^Access | tail -1 | awk '{print $2 " " $3}')" +%s) -gt $(date -d"$MY_DATE" +%s) ]]
then
echo $i
fi
done
这不适用于路径中包含空格的目录。
该脚本只是循环遍历从运行它的位置找到的所有目录(您可以通过修改 find 命令来更改它)并在它们上运行 stat,将访问日期与 MY_DATE 变量中提供的日期进行比较。
答案3
这大约是对的吗?
$ cd ~
# adate for ./Pictures/
$ stat -c %x ./Pictures/
2018-05-18 11:08:44.326743397 -0400
# adate for ./Music/
$ stat -c %x ./Music/
2018-05-18 11:08:44.325743396 -0400
# Change das adate for ./Music/:
$ ls -la ./Music/
drwxr-xr-x. 2 leeand00 leeand00 6 May 18 2018 .
drwx------. 24 leeand00 leeand00 4096 Dec 11 09:54 ..
# Read the adate for ./Music/ to see that it changed:
$ stat -c %x ./Music/
2018-12-19 23:35:04.789892164 -0500
# Read the adate from ./Pictures/ to see that it did not change:
$ stat -c %x ./Pictures/
2018-05-18 11:08:44.326743397 -0400
# Don't re-invent the wheel:
# `-type d` (look for folders only)
#
# `-maxdepth 1` (Only look inside this directory for folders,
# don't descend lower than that)
#
# `-amin -300` ()
#
$ find . -maxdepth 1 -type d -amin -300
.
./Music