Linux 按时间批量删除文件命令(删除N天前文件)批量删除文件

发布时间:2024-12-26 21:31

如何恢复误删文件:使用数据恢复软件,尽快在删除前进行操作。 #生活知识# #生活经验# #电子产品#

需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据。

可以使用下面一条命令去完成:

1

find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \;

这个是根据时间删除。

下面简要解释一下,这句shell命令:

1

find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \;

/home/lifeccp/dicom/studies :准备要进行清理的任意目录-mtime:标准语句写法+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件"*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件-exec:固定写法rm -rf:强制删除文件,包括目录 {} \; :固定写法,一对大括号+空格+/+;

 当然也可以根据文件名、根据大小,根据其他不同条件过滤删除,或者修改等,可以考虑sort等命令结合使用。

1-1.快速删除大文件夹(注意目录后的结束符‘/’)(对于含有海量文件的目录,不能直接rm -rf删除,这样效率很慢:)

          rsync -a --delete blank/ test/              使用空文件夹 blank/ 覆盖原文件夹 test/ 

          mkdir empty_dir && rsync -a --delete empty_dir/ your_dir/ && rm -rf  your_dir/ empty_dir  #得把your_dir/再删除一下,因为里边的./文件很大 

 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

转载于:https://www.cnblogs.com/Formulate0303/p/11170839.html

网址:Linux 按时间批量删除文件命令(删除N天前文件)批量删除文件 https://www.yuejiaxmz.com/news/view/577422

相关内容

Linux下快速删除大量文件/文件夹方法
Windows下快速删除上万个文件和子目录(快速删除文件) 命令行cmd快速删除文件夹
linux怎么快速删除大量文件,比rm快的方法来了
电脑如何快速删除大量文件?快速删除大量文件的方法
windows下如何快速删除大量小文件?
windows系统下快速删除海量小文件方法
Win10如何自动删除临时垃圾文件?
删除电脑上重复文件的方法
小技巧:快速删除VS解决方案里各项目的bin/obj文件夹
妙方删除重复文件 大量节约磁盘空间!

随便看看