linux清空目录下所有文件内容 linux中删除空目录的命令

在Linux系统中很多空目录会导致杂乱无章,其实这些空目录是没啥用的,在删除这些空目录时,手动搜索和删除每个目录都成为一项艰巨的任务 。

linux清空目录下所有文件内容 linux中删除空目录的命令

文章插图
使用命令行删除目录时,它们将被永久删除,即它们不会被移动到垃圾箱 。rmdir 和 rm 命令一次只能用于手动删除一个或多个目录 。find 命令用于搜索所有空目录,并使用单个命令将其全部删除 。下面来看一下是如何使用的 。
1,删除空目录使用rmdir命令
rmdir 命令用于删除空目录 。它只删除空目录,因此,如果目录不为空,它将显示目录不为空的错误 。使用此命令时,您不需要检查空目录,要使用rmdir命令 。
[rootlocalhost sharplee]#rmdir test*
linux清空目录下所有文件内容 linux中删除空目录的命令

文章插图
从上图可以看出通过rmdir删除目录test开头的空目录,test5不是空目录删除的时候报错不是空目录 。rmdir删除目录的时候不是空目录是不会被删除的 。其实test5下面也有一个空目录,有没有啥办法可以删除这俩目录 。下面就来看一看rmdir加上参数能不能行 。
[rootlocalhost sharplee]#rmdir -ptest5/test
linux清空目录下所有文件内容 linux中删除空目录的命令

文章插图
从上图可以看出通过rmdir -p test5/test,能够删除子目录为空目录以及父目录为空的目录,如果子目录为空,父目录不为空,父目录不会被删除 。
再来看一个反例,test5目录下有test1,test2目录,test1目录下有一个文件test,test2为空目录,删除test2,不能删除test5,test5目录不为空目录,删除test1目录,test1目录不为空目录,下面有一个文件 。
linux清空目录下所有文件内容 linux中删除空目录的命令

文章插图
2,删除空目录使用rm命令
与 rmdir 命令不同,rm 命令用于删除文件和目录,无论是空的还是非空的 。当使用不带任何参数的 rm 命令时,它不会删除目录:

[rootlocalhost sharplee]# rm test5
rm: cannot remove ‘test5’: Is a directory
[rootlocalhost sharplee]#

通过上面的命令可以看出使用rm是不能删除目录的,删除目录需要在rm 后面加上参数-d。
[rootlocalhost sharplee]# rm -d test*
linux清空目录下所有文件内容 linux中删除空目录的命令

文章插图
通过上图看出rm -d 删除空目录,下面接着看一下test5目录不是空目录,目录下有一个文件tt看能否删除目录 。
linux清空目录下所有文件内容 linux中删除空目录的命令

文章插图
3,删除空目录使用find命令
查找命令用于搜索文件和目录 。使用查找命令和一些参数,我们可以搜索系统中的所有空目录并删除它们 。
[rootlocalhost sharplee]# find path -type d -empty
下面是对上面的命令的一个解释:
  • path : 要搜索的目录的路径
  • -type d: 将搜索限制为仅目录(也可以使用 -type f 搜索文件)
  • -empty:仅将搜索限制为空目录
[rootlocalhost test1]# find /home/sharplee/test1 -type d -empty
linux清空目录下所有文件内容 linux中删除空目录的命令

文章插图
通过上面可以看出使用该命令可以查找出该目录下的所有空目录 。接下来看看如何删除,其实很简单,在命令后面加上一个-delete即可 。
[rootlocalhost sharplee]# find path -type d -empty -delete
linux清空目录下所有文件内容 linux中删除空目录的命令

文章插图
【linux清空目录下所有文件内容 linux中删除空目录的命令】