Linux使用命令行删除目录中的所有文件

时间:2020-01-09 10:41:26  来源:igfitidea点击:

如何从目录中删除所有文件。
您能告诉我Linux命令删除目录中的所有文件吗?

说明:您可以使用unlink命令删除目录中的所有文件。
另一个选择是使用rm命令删除目录中的所有文件。
本教程说明如何使用命令行选项删除目录中的所有文件。

Linux删除目录中的所有文件

从目录中删除所有文件的过程:

  • 打开终端应用程序要删除目录中的所有内容,请运行:rm /path/to/dir/*
  • 要删除所有子目录和文件:rm -r/path/to/dir/*

让我们看一些使用Linux操作系统时rm命令删除目录中所有文件的示例。

如何删除目录中的所有文件?

假设您有一个名为/home/Hyman/data /的目录。
要列出文件,请执行ls命令:

$ ls ~/data/

要删除名为/home/Hyman/data /的目录中的所有文件,请运行:

$ rm /home/Hyman/data/*

您可以看到在删除目录中的所有文件时,通过将-v选项传递给rm命令来做什么:

$ rm -v /home/Hyman/data/*

使用ls命令验证:

$ ls -l /home/Hyman/data/

如您所见,rm命令无法删除子目录/home/Hyman/data/images和/home/Hyman/data/scripts。
要从目录中删除所有文件文件夹,请运行:

$ rm -rfv /home/Hyman/data/

了解删除目录中所有文件的rm命令选项

  • -r:递归删除目录及其内容。
  • -f:强制选项。换句话说,忽略不存在的文件和参数,从不提示。危险的选择。小心。
  • -v:详细选项。在屏幕上显示rm在做什么。

删除隐藏文件与非隐藏文件

在Linux中,任何以点字符开头的文件或目录都称为点文件。
它被视为隐藏文件。
要查看隐藏文件,将`-a'传递给ls命令:

ls
ls -a
ls -la

要除去目录中隐藏文件以外的所有文件,请使用:

rm /path/to/dir/*
rm -rf /path/to/dir/*
rm *

在此示例中,删除所有文件,包括隐藏文件,运行:

rm -rf /path/to/dir1/{*,.*}
rm -rfv /path/to/dir1/{*,.*}

Bash使用dotglob选项从目录中删除所有文件,包括隐藏文件

如果设置了dotglob选项,则bash包含以开头的文件名。
扩展路径名的结果。
换句话说,启用此选项以删除隐藏文件:

# Bash shell and may not work on other shells
# Turn on dotglob (set) #
shopt -s dotglob
 
# Remove all files including hidden .files #
rm -v ~/project/oldfiles/*
rm -vrf ~/project/oldfiles/*
 
# Turn off dotglob (unset) #
shopt -u dotglob

Linux删除目录中的所有文件

正如我之前所说的,也可以使用unlink命令。
语法为:

unlink filename

例如,删除当前工作目录中名为foo.txt的文件,执行:

unlink foo.txt

一次只能删除一个文件。
您不能传递多个文件或使用通配符,例如*。
因此,我强烈建议您如上所述使用rm命令。