脚本示例:
find . -type f -atime +10 | xargs rm -f

使用shell批量删除10天内没访问过的文件

find命令有一个参数可以避免特殊字符对后面执行的命令产生影响

-print0
      True; print the full file name on the standard output, followed by a null character (instead of the new-
      line character that ‘-print’ uses).  This allows file names that contain  newlines  or  other  types  of
      white  space  to  be correctly interpreted by programs that process the find output.  This option corre-
      sponds to the ‘-0’ option of xargs.


命令变成这样:

find . -type f -atime +10 -print0 | xargs -0 rm -f


一般来说不会有什么问题,但如果每个文件路径都特别深,那么会导致参数很多,命令行很长。
比如会看到如下提示:

xargs: argument line too long


那可以让xargs一次处理一条试试:

find . -type f -atime +10 -print0 | xargs -0 -l1 -t rm -f


-l1是一次处理一个
-t是处理之前打印出命令,适合调试或者欣赏观看用
Tags: , ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐