linux怎么将一个目录下除了某个文件外的文件都删除

linux怎么将一个目录下除了某个文件外的文件都删除,第1张

彻底清除删除除系统外的所有文件方法有:

1、把C盘除外的盘格式化

2、控制面板——添加删除程序——逐一删除除系统外的所有程序

3、清除系统临时文件:将下面的代码复制到记事本,保存为“清理垃圾bat”文件,用时双击,运行这个批处理,自动清除系统垃圾文件。

删除制定文件(夹)之外的所有文件呢?

1、方法1,比较麻烦的做法是:

复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来。

mv keep 。。/ #保留文件(夹) keep

rm -rf * #删除当前文件夹里的所有文件

mv 。。/keep 。/ #将原来的东西移动回来

2、方法2,需要在当前文件夹中进行:

rm -rf !(keep) #删除keep文件之外的所有文件

rm -rf !(keep1 | keep2) #删除keep1和keep2文件之外的所有文件

3、方法3,当前文件夹中结合使用grep和xargs来处理文件名:

ls | grep -v keep | xargs rm #删除keep文件之外的所有文件

说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。

好处:使用了grep来正则表达式来匹配文件名字,可以一次保留多个文件,从而进行更加准确的处理。

4、方法4,使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件:

find 。/test/ | grep -v keep | xargs rm #删除当前test文件夹中keep文件之外的所有文件

说明,用grep而不用find -name选取名字,因为find选取名字时比较麻烦,对正则表达式支持不够,无法排除指定文件名。

5、方法5,直接使用find命令删除其他文件:

find 。/ -name ‘[^k][^e][^e][^p]*’ -exec rm -rf {} \#删除keep以外的其他文件。

find 。/ -name ‘[^k][^e][^e][^p]*’ | xargs rm -rf #删除keep以外的其他文件。推荐!

说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。

在Linux系统中/tmp文件夹下的文件是会被清理、删除的,文件清理的规则是如何设定的呢? 在root/tmp文件下 hdfs在启动的时候回去找pid文件 在pid文件被删除的时候,hdfs是不能被关掉的,如果在启动,他会又重新启动一个,但是不是之前的那个,所以会导致蒙圈了。 Linux在tmp命令 定期删除一些文件和文件夹 30天周期 mkdir /data/tmp chmod -R 777 /data/tmp export HADOOP_PID_DIR=/data/tmp 为了避免pid文件在tmp中被删除,重新建一个路径/data/tmp,并给他777权限 chmod -R 777 /data/tmp,把pid文件放在这里边就不会被删除了 配置参数的更改 参数: -u 按照文件的最后access时间,即最后访问时间为参考。默认选项。可通过ls -lu查看。 -m 按照文件的最后modified时间,即最后修改时间为参考。可通过ls -l查看。 -c 按照文件的-ctime时间做参考,ctime更新的条件为写入、更改属主、权限。可通过ls -lc查看。 -M 按照目录的修改时间来删除目录而不是访问时间。 -a 删除所有类型文件。包括目录和symbolic links -d --nodirs 排除目录文件,即使是空目录。 -d --nosysmlinks 排除symbolic links类型文件。 -f 强制删除那些root没有写权限的文件。比如root的readonly文件 -q 只报告错误信息。 -x /PATH 排除特定目录,即不删除该子目录里的文件。 -U user_name 排除属于特定用户的文件,即不删除该用户的文件。 -v 显示删除过程。默认是不显示删除了什么文件,直接删除的。 -t 用于测试,并不真正删除文件,能显示出要删除文件的过程。 -d 不删除文件里的子目录,但是子目录里面的文件还是会被删除。 参数后加时间,默认是hours。也可以使用30d表示30天,但是有些版本只支持hours。 时间后是要检查的目录。可以多个目录用空格分开。如下所示表示720小小时~=30天。 如果你想将强制删除30天没有访问的文件改为7天,只需"/usr/sbin/tmpwatch “f l a g s " 720 / v a r / t m p " 和 " / u s r / s b i n / t m p w a t c h " flags" 720 /var/tmp"和"/usr/sbin/tmpwatch "flags"720/var/tmp"和"/usr/sbin/tmpwatch"flags” -f 720 “$d” 里面的720改为189即可。 转自: https://blog.csdn.net/qq_43688472/article/details/87872293


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6156394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存