Linux命令行批量删除文件(目录)
快速-批量删除文件或目录
1-1.快速删除大文件夹(注意目录后的结束符‘/’)(对于含有海量文件的目录,不能直接rm -rf删除,这样效率很慢:)
rsync -a --delete blank/ test/ 使用空文件夹 blank/ 覆盖原文件夹 test/
1-2.查找并删除文件
find ./ -type f -name "*.log" -mmin +120 -delete 删除当前目录下120min前的所有.log结尾文件
find ./ -type f -name "*.log"
-mtime +300
-delete
删除当前目录下300天前的所有.log结尾文件
这种方式要比下边语句快2-3倍,并且当目录中文件非常多时不会出现列表过长无法删除的异常。
find ./ -name "*.log" -mmin +120 | xargs rm -f
或
find ./ -name "*.log" -mmin +120 -exec rm {} -f # -exec 表示后面执行命令 "{}" -f表示不需要确认 <=>
find ./ -name "*.log" -mmin +120
-exec rm -f "{}" \; #最后的分号不可少
1-3.
delete.sh:
for i in `ls -d path/shell/shell_pipe/step*qsub` # ls列出匹配上的目录 必须用-d 否则ls会把目录下的文件也都列出来
do
rm -r $i
done
for i in `ls path/*log`
do
rm $i
done
eg:快速删除目标文件中自己的qsub目录中的运行oe文件。
/share/app/msort/bin/msort -k rn5 file | grep 'name'|grep 'qsub'|awk '{print $8}'| while read ID #第八列是以qsub结尾的目录全路径,一个个给到$ID
do
for i in `ls $ID/*\.[eo]*` #匹配filename.e.12345 filename.o.12345 文件
do
#echo $i
rm $i
done
for i in `ls $ID/*\.log` #匹配filename.log 文件
do
#echo $i
rm $i
done
done
参考:
[0]http://www.jb51.net/article/61943.htm
[1]https://blog.csdn.net/ydyang1126/article/details/72841308 https://blog.csdn.net/shangzwz/article/details/10304469
相关文章
- 【华为云技术分享】Linux内核源码结构(1)
- [Linux]linux如何把文件切成多块
- linux find 10天内改动过的文件
- linux常用命令汇总
- Linux网卡命名enp3s0说明
- Linux基础之linux常用命令之文本替换
- linux 错误码 65280,Android:无法在同一部手机上执行通过Linux部署编译的文件
- linux的shadow文件
- 《Linux设备驱动开发具体解释(第3版)》进展同步更新
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息
- linux下关于mysql的命令的用法
- L47.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- users和whoami
- L3.linux命令每日一练 -- 第一章 Linux命令行简介
- 完美解决VMware虚拟机 Linux系统 Ubuntu 20.04 硬盘/磁盘扩容的问题(超级超级详细)
- Linux内核中ideapad-laptop.c文件全解析3
- 使用wget批量下载geo数据集的全部文件 linux下载geo数据 geo处理的数据不是下载原始数据 Linux如何下载ftp文件 geo ftp geo ftp下载 geo下载
- Linux之bash: /proc/sys/net/ipv4/ip_forward: 权限不够
- Linux之文件浏览工具nautilus
- Linux之cpupower修改cpu主频(一百零一)
- Beyond-Compare 4 -linux 破解
- Linux 文件与目录管理
- Linux系统之安装PostgreSQL数据库
- 安卓通过Linux Deploy安装linux系统