11
Linux服务器如何删除特殊字符文件名或目录

我们在使用Linux服务器时总会遇到不同的并且不容易解决的问题。例如,Linux如何删除特殊字符文件名或目录。

在解决这个问题之前,我们先简单了解一下linux中文件命名规则。文件或目录名由除“/”和空字符“\0”之外的任意ASCII字符序列组成。当然很多操作系统允许更多类型的字符组成文件名。但对于我们来说,从来不建议使用一些特殊字符来命名文件。不幸的是,我们可能无意中创建了一些特殊名称的文件,或者由程序意外的创建了一些由特殊字符组成的文件。这个时候,要删除它们,似乎没有想象中的那么简单。


我们可以通过文件的inode号删除文件

先要使用ls -i 把要删除文件的inode 号找出来

ls -i |grep xxxxxx|awk '{print $2}'|xargs -i rm -f {}
#xxxxxx为文件的 inode 号

   


通过文件的大小删除文件

删除当前目录以及所有子目录下的文件大小为零的文件

find ./ -size 0 -exec rm {} \;

   


删除当前目录下文件大小为零的文件(子目录不删除)

find ./ -maxdepth 1 -empty -type f -print -delete #-maxdepth 指定目录层级


一般删除方法和强制删除方法

删除普通文件夹目录:

rm -rf /var/log/httpd/access


将会删除/access目录以及其下所有文件、文件夹

强制删除文件:

rm -f /var/log/httpd/access.log


将会强制删除/access.log这个文件


注:

-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思



这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!