Linux/UNIX:如何清空目录

时间:2020-01-09 10:40:11  来源:igfitidea点击:

如何在Linux/Unix下清空目录(删除所有文件)而不删除目录本身?
您可以使用以下命令在类似Linux和Unix的系统中清空目录。

如何在Linux和Unix中清空目录

  • rm命令删除一个或多个文件或目录。
  • find命令查找并删除特定目录中的所有文件。

使用rm命令的Linux空目录

首先,考虑使用tree命令显示的以下目录结构

/tmp/
	|
	|------foo/
		|---file1
		|---file2
		|---file3

要删除/tmp/foo /目录中的所有文件(即空的/tmp/foo /目录),请执行:

$ cd /tmp/foo/
$ rm *

或者

$ rm /tmp/foo/*

使用Find命令删除所有文件

考虑以下目录结构:

/tmp/
	|
	|------bar/
		|	
		|---file1.txt
		|---file2.txt
		|
		|---subdir1/
		|	|---file1.doc
		|	|---file2.doc
		|
		|---subdir2/
			|---image1.jpg
			|---image2.png

要删除/tmp/bar /目录中的所有文件(包括子目录中的所有文件,如/tmp/bar/dir1),请执行:

$ cd /tmp/bar/
$ find . -type f -delete

或者

$ find /tmp/bar/ -type f -delete

上面的find命令将从/tmp/bar /目录中删除所有文件。
它不会删除任何子目录。
要同时删除文件和目录,请尝试:

find /path/to/target/dir/ -delete

查找命令选项如下:

  • ``-type f`:仅删除文件。
  • ``-d型:仅删除文件夹。
  • ``-delete`:从给定目录名称中删除所有文件。

如何在Linux中删除完整目录和所有文件

要删除包含其他文件或子目录的目录,请使用以下rm命令命令。
在示例中,我将使用rm -rf命令将空目录命名为docs,如下所示:

rm -rf /tmp/docs/*

获取详细的输出:

rm -rfv /tmp/docs/*

rm命令选项如下:

  • -r:在Linux或类似Unix的系统上递归删除目录及其内容。
  • -f:强制删除。换句话说,请忽略不存在的文件并删除找到的任何文件。
  • -v:详细输出。例如,解释屏幕上正在执行的操作。