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 .* *
它不会删除目录,默认情况下不会递归到目录中。
目录中有些文件的名称不常见(例如,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 .* *
它不会删除目录,默认情况下不会递归到目录中。