Linux下删除乱码或特殊字符文件

今天遇到一个问题,一个文件名是“-MXV9.log”,直接用rm删除的时候就报错,如下:

[localhost]rm -MXV9.log
rm: illegal option -- M
rm: illegal option -- X
rm: illegal option -- V
rm: illegal option -- 9
rm: illegal option -- .
rm: illegal option -- l
rm: illegal option -- o
rm: illegal option -- g
Usage: rm [-Rfir] file ...

通常对这类文件都可以使用引号括起来删除,但是这里带引号删除也一样报illegal option的错。

找了一些资料后发现这种文件可以这样删除:先ls -i 查到文件的inode,然后用find命令删除

[localhost]ls -ilrt

100985 -rw-r--r--  1 tbcs      users            0 Apr 18 11:32 -MXV9.log

最前面一列的100985就是文件的inode,在主机上执行如下命令即可删除文件

[localhost]find ./ -inum 100985 -exec rm {} \;

所以大家以后遇到文件名为乱码或者带有特殊字符的文件需要删除的情况下,可以尝试使用这种方法。

本文转载自:http://www.linuxprobe.com/linux-delete-code-special-character-files.html

更多Linux干货请访问:http://www.linuxprobe.com/

时间: 2024-10-14 14:05:31

Linux下删除乱码或特殊字符文件的相关文章

Linux下删除乱码文件

Linux下删除乱码文件: 1. ls -i 列出文件的节点ID, 如: 123456789 2. find ./ -inum 123456789 -print -exec rm -rf {} \; 批量删除: for n in 123456789 987654321;do find . -inum $n -exec rm -f {} \;;done

linux下删除乱码文件,目录

查询到目录或文件的inode号 进入乱码文件或目录的目录下 []$ ls -li 6878 -rw-r--r-- 1 patrol patrol 0 Aug 19 16:37 ##??? []$ find . -inum 6878 -exec \rm -rf {} \; []$ ls []$ 这样就可以根据inode号,就删除了.

Linux服务器删除乱码文件和文件夹的方法

Linux服务器删除乱码文件和文件夹的方法 首页进入乱码文件所在文件夹由于php大势所趋,所以接触Linux服务器的机会越来越多.不同于Windows服务器,Linux服务器只支持数字.英文等字符,对中文字符没办法识别.所以导致我们打包上传文件解压之后出现中文乱码文件和文件夹.网上有很多解决的办法,但是今天亲测用find命令能快速删除乱码的文件和文件夹,所以跟大家分享一下. 使用ls -i命令找到文件或文件夹的节点编号 前面的就是节点号了,接下来使用find命令查询并且删除 -inum指根据节点

linux下删除整个文件夹或者文件命令实例

1.linux删除文件夹命令 在用Linux的时候,有时候要删除一个文件夹,往往会提示次此文件非空,没法删除,这个时候,就必须使用rm -rf命令. 2.linux删除文件夹实例: rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 3.linux删除文件实例: rm -f /var/log/httpd/access.log 将会强制删除/var/log/httpd/access.log这个文件 -r 就是向下

linux下删除大量文件

linux下删除大量文件时,显示如下 bash: /bin/rm: Argument list too long 解决方法: ls | xargs -n 10 rm -fr ls当然是输出所有的文件名(用空格分割) xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm -rf的参数 也就是说将所有文件名10个为一组,由rm -rf删除.

Linux 下文件名乱码(无效的编码)的解决办法

文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码. sudo apt-get install convmv convmv 使用方法:convmv -f 源编码 -t 新编码 [选项] 文件名常用参数:-r 递归处理子文件夹–notest 真正进行操作,默认情况下是不对文件进行真实操作–list 显示所有支持的编码–unescap 可以做一下转义,比如把

linux下删除用户脚本----不是userdel -r 那么简单

linux下删除用户不仅仅是userdel -r 那么简单. 如果你删除用户时,该用户有许多进程正在进行,你是不是要一个个kill掉再删除: 如果你成功删除该用户后,系统中还有需要改用户的文件是不是还要删除. 如上,岂不麻烦.下面的脚本可以帮你快速删除一个或多个用户. #!/bin/bash #delete user from system #by slitobo 2017/6/2 #check user is root [ `id -u` -ne 0 ] && echo "Pl

JAVA压缩 解压缩zip 并解决linux下中文乱码

1. [代码][Java]代码   1:再压缩前,要设置linux模式, 需要使用第三方ant-1.6.5.jar  如果是文件目录,则ZipEntry zipEntry=new ZipEntry(basePath + System.getProperties().getProperty("file.separator"));zipEntry.setUnixMode(755);//解决linux乱码 如果是文件,则 ZipEntry zipEntry=new ZipEntry(base

linux下rm -r误删NTFS文件恢复方法

linux下rm -r误删NTFS文件恢复方法(nfs-3g) 一时疏忽,手一抖,把整个挂载的F盘删了一半!顿时傻眼!! 被删的F盘是Windows下NTFS分区,在Ubuntu12.04中挂载了F盘,使用rm命令时粗心大意,误删了一半的数据. 血的教训告诉我们,使用rm -r命令一定要带上-i,否则让你后悔莫及! 还好在Linux下有一种方法可以恢复被删除的NTFS分区文件. 本文地址:http://www.cnblogs.com/yhLinux/p/4106099.html 在文件被误删后,