当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

我得到的最接近的是

# 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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/267.html,未经允许,请勿转载。