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