我正在使用“ 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命令的困扰。我正在尝试寻找替代方法,这样可以避免使用“查找”,并且不必在每次要运行搜索时都直接访问目录。
答案 0 :(得分:1)
解析ls
的输出是一个滑坡。
使用find
:
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 {} +
答案 1 :(得分:0)
尝试查找:
find /folder -atime +30
其中+30 =天
其他参数:人找到