“用find和rm命令来批量删除文件”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
(导入1个版本)
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
  
用find和rm命令来批量删除文件
+
=用find和rm命令来批量删除文件=
  
 
pre:<br/> 先上一个小例子<br/> 第一种 用 管道<br/> &nbsp;find / -name '*fcitx*' | xargs &nbsp;rm -rf<br/> 可以<br/> 原理大概是先使用find 列出档案,再导向到xargs,xargs 再喂给rm,在这里,xargs 会分批依照rm 的最大数量喂给rm,然后就可以顺利删除档案了 。速度是非常快的哦。<br/> &nbsp;<br/> 注意:exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。<br/> &nbsp;find . -name .svn -type d -exec rm -rf {} \;<br/> 在删除之前可以打印出来看看:<br/> &nbsp;find . -name .svn -type d -exec ls -l {} \;<br/> 类似还可以参考下 find -ok 以及 xargs 命令。
 
pre:<br/> 先上一个小例子<br/> 第一种 用 管道<br/> &nbsp;find / -name '*fcitx*' | xargs &nbsp;rm -rf<br/> 可以<br/> 原理大概是先使用find 列出档案,再导向到xargs,xargs 再喂给rm,在这里,xargs 会分批依照rm 的最大数量喂给rm,然后就可以顺利删除档案了 。速度是非常快的哦。<br/> &nbsp;<br/> 注意:exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。<br/> &nbsp;find . -name .svn -type d -exec rm -rf {} \;<br/> 在删除之前可以打印出来看看:<br/> &nbsp;find . -name .svn -type d -exec ls -l {} \;<br/> 类似还可以参考下 find -ok 以及 xargs 命令。
第21行: 第21行:
 
保留30天
 
保留30天
 
find ./ -type f -mtime +29 |xargs rm -rf</pre>
 
find ./ -type f -mtime +29 |xargs rm -rf</pre>
 +
 +
=按时间排序,删除最后的10个文件=
 +
ls -t | tail -100 | xargs rm -rf
  
 
<br/> [http://blog.csdn.net/shangzwz/article/details/10304469 http://blog.csdn.net/shangzwz/article/details/10304469]<br/> [http://socol.iteye.com/blog/1189158 http://socol.iteye.com/blog/1189158]
 
<br/> [http://blog.csdn.net/shangzwz/article/details/10304469 http://blog.csdn.net/shangzwz/article/details/10304469]<br/> [http://socol.iteye.com/blog/1189158 http://socol.iteye.com/blog/1189158]
  
 
[[Category:Shell]]
 
[[Category:Shell]]

2022年8月1日 (一) 07:16的最新版本

用find和rm命令来批量删除文件

pre:
先上一个小例子
第一种 用 管道
 find / -name '*fcitx*' | xargs  rm -rf
可以
原理大概是先使用find 列出档案,再导向到xargs,xargs 再喂给rm,在这里,xargs 会分批依照rm 的最大数量喂给rm,然后就可以顺利删除档案了 。速度是非常快的哦。
 
注意:exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。
 find . -name .svn -type d -exec rm -rf {} \;
在删除之前可以打印出来看看:
 find . -name .svn -type d -exec ls -l {} \;
类似还可以参考下 find -ok 以及 xargs 命令。


第二 不用管道 
#注:分号是必需的
 find / -name "*google-music*" -exec rm -rf "{}" \;

 find [目录名] -name "文件名" -exec rm -rf "{}" \;
搜索删除文件,例如:find / -name *.raw -exec rm -rf "{}" \; 其中, -exec 表示后面执行命令 "{}" 表示查询到的文件名 -rf 为删除命令rm的参数,r 表示递归删除, f表示不需要确认,两个参数可根据需要去留


 find ./ -name "log_statdatas_201610*" -exec rm -rf "{}"\;

log_statdatas_2016102809.log
log_statdatas_2016102810.log
log_statdatas_2016102811.log


想起了备份脚本 用ctime 

atime 访问时间 accessed
mtime 修改时间 modified
ctime 改变状态 changed

 

find $DATADIR -type f -mtime +10 |xargs rm -rf

保留30天
find ./ -type f -mtime +29 |xargs rm -rf

按时间排序,删除最后的10个文件

ls -t | tail -100 | xargs rm -rf


http://blog.csdn.net/shangzwz/article/details/10304469
http://socol.iteye.com/blog/1189158