Linux:如何删除目录本身(不是子文件)内的所有文件(不是目录)

Linux: How to delete all of the files (not directories) inside a directory itself (not childs)

目录中有些文件的名称不常见(例如,unicode 格式)。 如何删除它们?


首先找到文件,然后删除:

find [dir_path] -maxdepth 1 -type f  | xargs rm -rf

以上很简单,当任何文件名中有 space 时,上述方法不起作用。所以,我写了一个复杂而完整的命令来处理 spaces:

find ./ -maxdepth 1 -type f  | awk -F '/' '{printf "'\''%s'\''\n",}' | xargs rm -rf

"-maxdepth 1" 表示仅来自目录而不是子目录。在其他方法中,不是递归查找。如您所知,“xargs”在发送给它的列表上执行以下命令。

您可以只使用 rm:

rm .* *

它不会删除目录,默认情况下不会递归到目录中。