Linux 将目录/文件输入到文本文件中,然后显示早于特定日期的文件

Linux 将目录/文件输入到文本文件中,然后显示早于特定日期的文件,linux,bash,ls,Linux,Bash,Ls,我使用“ls-alR”将这些目录中的目录和文件输入到另一个文本文件中 ls -alR > testalR.txt 文本文件的创建方式如下: ./test-file_folders/test_folder_1: total 400 drwx------ 5 "user" "group" "size" May 2 10:30 test_file_1 .... file info ... more file info ....test_file_2 ...more files

我使用“ls-alR”将这些目录中的目录和文件输入到另一个文本文件中

ls -alR > testalR.txt
文本文件的创建方式如下:

./test-file_folders/test_folder_1:
total 400
drwx------ 5 "user" "group" "size" May 2 10:30 test_file_1
....     file info    ... more file info   ....test_file_2
...more files 


./test-file_folders/test_folder_2:
total 400
drwx------ 5 "user" "group" "size" Oct 2 11:35 test_file_1
....     file info    ... more file info   ....test_file_2
...more files 
我试图显示自2018年10月2日以来未被访问的文件。 我试过:

`sed -n '/Oct 2 00:00/,/Oct/ 2 23:59/p' /testalR.txt
…但它不会产生任何结果。有没有更好的方法来显示这一点,甚至是可能的


对不起,应该先添加这个。我知道使用find-atime变体是最好的选择。但是我们使用的系统和进程被find命令所困扰。我正在尝试寻找替代方法,这样就可以避免使用“find”,而不必每次运行搜索时都直接访问目录

解析
ls
的输出是一个危险的过程

使用
查找

find . -type f -atime +3 -print

find . -type f -atime +3 -exec ls -uld {} +
使用
-print
只返回文件名列表。使用
-exec ls-ld{}+
可以为返回的每个文件运行
ls
,为您提供所需的详细信息

争论。到
atime
(或
mtime
ctime
)的时间间隔为24小时。参数可以是正的或负的(或零)。使用
-atime+3
查找至少四天前访问过的文件

使用
-exec。。。{}+
导致对返回的每个对象执行“…”中的命令,一次绑定尽可能多的对象(文件)。这比为每个返回的文件分叉一个进程要高效得多,例如:

... -exec ls -uld {} \;
将结果限制在特定日期的一种方法是创建两个参考点(文件),如下所示:

touch -amt 201809302359 f1
touch -amt 201810012359 f2
find . -type f \( -anewer f1 -a ! -anewer f2 \) -exec ls -uld -exec {} +
尝试查找:

find /folder -atime +30 
其中+30=天


其他参数:man find

如果要查找的atime和其他选项不足(例如,无论何时运行脚本,您都需要特定的日期),您可以使用stat(1)命令和find获取时间,然后进行字符串比较。请参阅使用
-exec。。。{}+
在我的回答中,我回应了您对运行
find
时系统性能的担忧。jj102,有关为什么使用“ls-alR”不是解决此问题的好方法的详细信息,请参阅。jj102,我想不出运行
find
会使系统比运行
ls-alR
更“陷入困境”的原因。您运行了什么
find
命令,是什么让您认为它导致系统“陷入困境”?