大家好,我是一个喜欢研究算法、机械学习和生物计算的小青年,我的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