2
find /user/stc/tmp -mmin -200 -ls | grep '.txt' | awk '{print $8, $9, $10, $11}' >> tempresult.txt

首先我是一个新手,我试图找出上周修改的 .txt 文件(在 home/user/temp 中)并将结果保存到文件中。所以有些我是怎么想出来的,但我需要帮助才能只保存没有路径的文件名。我可以用它打印

awk '{print \$NF}'

但是当我结合上面的命令尝试它时,它没有按预期工作。

非常感谢任何帮助/建议/改进。先感谢您。

4

2 回答 2

4

该管道对于该任务来说非常复杂。

find支持所有过滤和格式化支持,你需要做你想做的事,而无需grep/awk管道。(更不用说首先几乎不需要管道grepawk

尝试:

find /usr/stc/tmp -mmin -200 -a -name '*.txt' -printf '%P\n'
  • -a组合find说明符(尽管这也是默认操作)
  • -name '*.txt'仅选择与所需名称格式匹配的文件
  • -printf选择输出的格式
  • '%P\n'输出找到的文件的名称,并在命令行参数下发现该文件已被删除(后跟换行符)。

如果您实际上只是指文件(根本没有路径组件),那么您需要%f格式字符串而不是%P(谢谢Xorg)。

于 2015-02-17T14:07:29.047 回答
1
find /user/stc/tmp -mmin -200 -printf "%f\n" > log_file

或者

  find /user/stc/tmp -mtime -7 -printf "%f\n" > log_file

..

-mtime -7# 过去 7 天

%f忽略文件所在的任何子目录。

编辑用户请求

 find /user/stc/tmp -mtime -7 -printf "%Td-%Tm-%TY %Tr %TY %f\n" > log_file


%Td-%Tm-%TY        #modification time: day-month-year
%Tr                #modification date time
%TY                #modification date year

还要注意linux跟踪修改日期而不是创建日期......

于 2015-02-17T22:41:47.523 回答