Linux 中删除内容但不删除目录?

dja*_*man 14 linux ubuntu

如何在Linux命令行终端中删除目录的所有内容但不删除目录本身?

miv*_*ivk 9

要删除 下的所有内容$your_dir/,包括隐藏文件和目录,但不删除$your_dir目录本身,您可以使用find

find "$your_dir" -mindepth 1 -delete
Run Code Online (Sandbox Code Playgroud)

Bash 中的替代方案rm是:

rm -rf "$your_dir"/{*,.[!.]*}
Run Code Online (Sandbox Code Playgroud)

大括号 ( .[!.]*) 中的第二部分负责处理以点开头的隐藏文件,但前提是它们不以 2 个点开头。这可以避免尝试删除...,但仍然会删除名为的文件.x


小智 4

如果“dir”是目录,请给出命令,

cd dir   
rm -r *
Run Code Online (Sandbox Code Playgroud)

  • 不建议在没有某种检查的脚本中使用。如果 cd 操作失败或者 dir 是空变量,或者更糟糕的是 dir 类似于“/$VAR1”并且 $VAR1 为空,则您将面临数据丢失的风险。 (4认同)