【Bash】如何用find指令刪除路径中属于某用戶的全部档案

目录/Table of Content

大家好,我是一个喜欢研究算法、机械学习和生物计算的小青年,我的CSDN博客是:一骑代码走天涯
如果您喜欢我的笔记,那么请点一下关注、点赞和收藏。如果內容有錯或者有改进的空间,也可以在评论让我知道。😄

问题情況

之前跑程序的时候,曾经遇到过一个问题:如果现在在一个公共路径中包含太多垃圾文件 (而且名字完全没有规律),多到已经影响自己帐号的空间的情況下,在不影响其他用戶的正常文件和逐个手动処理的前提下,应该怎样才能把它们刪除?

例如现在用戶mhyg打算打自己所有的在 /tmp的文件全部刪除:

$ ls -lrth /tmp
total 164K
drwx------  10 xing  xing   4.0K Jul 23 16:38 RtmpIISQ29
drwx------   2 xwan  xwan   4.0K Jul 24 11:41 firefox_tmp
drwxr-xr-x   2 jjyu  jjyu   4.0K Jul 27 16:00 hsperfdata
drwx------   2 yili  yili   4.0K Jul 28 12:46 pymp-KJWRkB
-rw-------   1 mhyg  mhyg   8.9K Jul 28 18:04 cDeBIDcw1x
-rw-------   1 mhyg  mhyg   90 Jul 28 18:04 CkQpYLeJSf
-rw-------   1 mhyg  mhyg   183 Jul 28 18:04 il7qNwZ3Yl
-rw-------   1 mhyg  mhyg   3.3K Jul 28 18:04 DRxCAKShlS
-rw-------   1 mhyg  mhyg   191 Jul 28 18:05 vRtJU5a8bw
-rw-------   1 mhyg  mhyg   135K Jul 28 18:06 FIlH5NAOjE

有一个方法,就是设定只刪除特定的用戶文档,在Linux中是有这么一个指令可以做到。

Linux指令

其实只要一句find指令就可以了,中间再加以下选项:
-user: 指定用戶名
-exec: 执行选项后面的指令

$ find /tmp -user mhyg -exec rm -fr {} \;

而且也可以设定团体名来刪除文件:
-group: 指定团体名

$  find /home/ -group student -exec rm -fr {} \;

参考资料

https://linuxconfig.org/how-to-remove-all-files-and-directories-owned-by-a-specific-user-on-linux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值