问题描述
我得到的最接近的是
# rm /path/to/directory/*.*
但对于没有扩展名的文件不起作用…
最佳解决方案
Linux不使用扩展。由文件的创建者决定是否希望名称具有扩展名。 Linux会查看第一个字节来找出它正在处理的文件类型。
要删除目录中的所有内容,请使用:
rm /path/to/directory/*
您可以使用-r
选项删除要删除内容的目录中的任何目录。否则,它会显示一个错误消息,通知您它不会删除该目录。
次佳解决方案
-
删除包含所有内容的文件夹(包括所有内部文件夹):
rm -rf /path/to/directory
-
要删除文件夹的所有内容(包括所有内部文件夹),但不删除文件夹本身:
rm -rf /path/to/directory/*
-
从文件夹中删除所有”files”(不删除内部文件夹):
rm -f /path/to/directory/*
哪里:
-
rm
– 代表”remove” -
-f
– 代表”force”,例如,如果您不想询问/提示是否要删除归档文件,这很有用。 -
-r
– 代表”recursive”,这意味着您希望递归下降每个文件夹并删除所有内容。
第三种解决方案
要删除目录中的所有文件(包括隐藏文件和子目录),请运行:
rm -rf /path/to/directory/{*,.*}
第四种方案
如果你还想删除所有的子目录和目录本身,你可以使用rm -rf /path/to/directory
。但总是double-check按下回车之前,rm -rf
也可能导致大量的琐事。如果您在拥有超级用户权限的同时在第一个斜杠后意外插入了空格……
第五种方案
如果您只想删除/path /to /目录中的文件,您可以执行此操作
find /path/to/directory -type f -print0| xargs -0 rm
要么
find /path/to/directory -type f -exec rm '{}' \;
您可以使用find
进行加载,优点是您可以列出找到的内容,而无需将其输送到rm
,以便您可以在开始之前查看要删除的内容。
第六种方案
要删除目录中的所有文件和目录(包括隐藏文件),可以尝试以下操作:
-
删除该文件夹,然后重新创建它
rm -rf dir_name && mkdir dir_name
-
使用
find
find dir_name -mindepth 1 -delete
这里我们指定-mindepth 1
来排除目录dir_name本身。看看下面的链接:https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory