Linux操作系统基础(最新版)11 创建和删除文件目录
目录:
在Linux系统中,有几种删除目录的方法。 如果您使用桌面文件管理器,例如Gnome的文件或KDE的Dolphin,则可以使用管理器的图形用户界面删除文件和目录。 但是,如果您在无头服务器上工作,或者想一次删除多个目录,最好的选择是从命令行中删除目录(文件夹)。
,我们将说明如何使用
rmdir
,
rm
和
find
命令在Linux中删除目录。
在你开始之前
当您使用桌面文件管理器删除目录时,该目录实际上已移至垃圾箱,并且可以轻松恢复。
从命令行删除文件或目录时要格外小心,因为一旦使用说明的命令删除了目录,就无法完全恢复它。
在大多数Linux文件系统上,删除目录需要对该目录及其内容具有写权限。 否则,您将收到“不允许操作”错误。
其中包含空格的目录名称必须使用反斜杠(
/
)进行转义。
使用
rmdir
删除目录
rmdir
是用于删除空目录的命令行实用程序。 当您仅希望目录为空时才删除它,而无需检查目录是否为空时,此功能很有用。
要使用
rmdir
删除目录,请键入命令,然后输入要删除的目录的名称。 例如,要删除名为
dir1
的目录,请输入:
rmdir dir1
如果目录不为空,则会出现以下错误:
rmdir: failed to remove 'dir1': No such file or directory
在这种情况下,您将需要使用
rm
命令或手动删除目录内容,然后才能将其删除。
用
rm
删除目录
rm
是用于删除文件和目录的命令行实用程序。 与
rmdir
不同,
rm
命令可以删除空目录和非空目录。
默认情况下,不带任何选项使用
rm
不会删除目录。 要删除空目录,请使用
-d
(--
--dir
)选项,并删除非空目录,其所有内容都使用
-r
(--
--recursive
或
-R
)选项。
例如,要删除名为
dir1
的目录及其所有内容,请输入:
rm -r dir1
如果目录或目录中的文件受写保护,则将提示您确认删除。 要在没有提示的情况下删除目录,请使用
-f
选项:
rm -rf dir1
要一次删除多个目录,请使用
rm
命令,后跟用空格分隔的目录名称。 下面的命令将删除列出的每个目录及其内容:
rm -r dir1 dir2 dir3
-i
选项告诉
rm
提示您确认删除每个子目录和文件。 如果目录中包含很多文件,这可能会很烦人,因此您可以考虑使用
-I
选项,在继续删除操作之前,只会提示您一次。
rm -rI dir1
要删除目录,请键入
y
然后
Enter
。
rm: remove 1 argument recursively? y
您还可以使用常规扩展名来匹配和删除多个目录。 例如,要删除当前目录中以
_bak
结尾的所有第一级目录,可以使用以下命令:
rm -r *_bak
删除目录时使用常规扩展可能会有风险。 建议首先使用
ls
命令列出目录,以便在运行
rm
命令之前可以看到要删除的目录。
使用
find
删除目录
find
是一个命令行实用程序,可让您根据给定的表达式搜索文件和目录,并对每个匹配的文件或目录执行操作。
最常见的情况是使用
find
命令根据模式删除目录。 例如,要删除当前工作目录中以
_cache
结尾的所有目录,请运行:
find. -type d -name '*_cache' -exec rm -r {} +
让我们分析上面的命令:
-
/dir
在当前工作目录(.
)中递归搜索。-type d
将搜索限制为目录。-name '*_cache'
仅搜索以_cache
结尾的目录_cache
执行带有可选参数的外部命令,本例中为rm -r
。{} +
-将找到的文件附加到rm
命令的末尾。
删除所有空目录
要删除目录树中的所有空目录,请使用:
find /dir -type d -empty -delete
这是使用的选项的说明:
-
/dir
在/dir
目录中递归搜索。-type d
将搜索限制为目录。-empty
仅将搜索限制为空目录。-delete
删除子树中所有找到的空目录。-delete
只能删除空目录。
谨慎使用
-delete
选项。 find命令行被评估为表达式,如果您首先添加
-delete
选项,则该命令将删除指定起点以下的所有内容。 始终使用
-delete
作为最后一个选项,在删除之前,请先测试不带
-delete
选项的命令。
/ bin / rm:参数列表太长
当您使用
rm
命令删除包含大量文件的目录时,会出现此错误消息。 发生这种情况是因为文件数大于命令行参数大小的系统限制。
有几种不同的解决方案来解决此问题。 例如,您可以
cd
到目录,然后手动或使用循环逐个删除子目录。
最简单的解决方案是首先使用
find
命令删除目录中的所有文件,然后删除目录:
find /dir -type f -delete && rm -r /dir
结论
使用
rm
and
find
您可以根据不同的条件快速,有效地删除目录。
删除目录是一个简单而轻松的过程,但是您必须小心不要删除重要数据。
rm rmdir查找终端如何在Linux中删除/删除用户(userdel命令)
在Linux中,您可以使用userdel命令删除用户帐户及其所有关联文件。 本教程介绍了userdel命令及其选项。
如何在Linux中删除(删除)符号链接
符号链接,也称为符号链接,是一种指向另一文件或目录的特殊类型的文件。 在本指南中,我们将向您展示如何在Linux / UNIX系统中删除(删除)符号链接。