首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Linux文件系统上查找非UTF8文件名

在Linux文件系统上查找非UTF-8文件名,可以使用find命令和convmv工具。

find命令可以帮助你在文件系统中查找特定的文件名。例如,你可以使用以下命令来查找所有非UTF-8文件名的文件:

代码语言:txt
复制
find /path/to/search -type f -exec file --mime-encoding {} \; | grep -v 'charset=utf-8'

这个命令会在指定的目录下查找所有文件,并使用file命令检查它们的编码。然后,grep命令会过滤掉所有UTF-8编码的文件。

一旦你找到了非UTF-8编码的文件,你可以使用convmv工具将它们转换为UTF-8编码。convmv是一个非常有用的工具,它可以批量转换文件名编码。例如,你可以使用以下命令将所有非UTF-8编码的文件名转换为UTF-8编码:

代码语言:txt
复制
find /path/to/search -type f -exec file --mime-encoding {} \; | grep -v 'charset=utf-8' | cut -d: -f1 | xargs convmv -f {} -t utf8 -r --notest

这个命令会在指定的目录下查找所有非UTF-8编码的文件,并使用convmv工具将它们转换为UTF-8编码。--notest参数表示实际执行转换操作,如果不加该参数,则只会显示转换结果,不会真正执行转换操作。

总之,在Linux文件系统上查找和转换非UTF-8文件名需要使用findconvmv等工具。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • mysql大小写敏感与校对规则

    Mac OS下,文件系统类型HFS+,非UFS卷: 都不区分大小写。...lower_case_file_system: 变量说明是否数据目录所在的文件系统对文件名的大小写敏感。ON说明对文件名的大小写不敏感,OFF表示敏感。...1:表名在硬盘上以小写保存,名称比较对大小写不敏感。MySQL将所有表名转换为小写在存储和查找表上。该行为也适合数据库名和表的别名。该值为Windows的默认值。...2:表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母进行保存,但MySQL将它们转换为小写在查找表上。...注释:只在对大小写不敏感的文件系统上适用innodb表名用小写保存。 windows上: ? linux上: ?

    5.1K10

    在Linux中查找文件系统类型的7种方法(ext2,ext3或ext4)

    文件系统是在存储磁盘或分区上命名,存储,检索和更新文件的方式。文件在磁盘上的组织方式。 文件系统分为两个部分:用户数据和元数据(文件名,创建时间,修改时间,大小和在目录层次结构中的位置等)。...中查找文件系统类型的7种方法(ext2,ext3或ext4) Linux 第1张 df命令–查找文件系统类型 2.使用fsck命令 fsck用于检查和选择修复Linux文件系统,它也可以在指定的磁盘分区上打印文件系统类型...: $ lsblk -f 在Linux中查找文件系统类型的7种方法(ext2,ext3或ext4) Linux 第3张 lsblk –显示Linux文件系统类型 4.使用mount命令 mount命令用于在...在不带任何参数的情况下运行时,它将打印有关磁盘分区的信息,包括以下文件系统类型: $ mount | grep "^/dev" 在Linux中查找文件系统类型的7种方法(ext2,ext3或ext4)...在Linux中查找文件系统类型的7种方法(ext2,ext3或ext4) Linux 第5张 blkid –查找文件系统类型 6.使用文件命令 file命令用于标识文件类型,该-s标志允许读取块文件或字符文件

    4.9K60

    在Ubuntu上挂载Windows分区的解决办法

    在我和实际使用中,字符集用utf8效果很好,没有出现乱码的问题,在终端挂载的代码如下: mount -t vfat /dev/hda2 /mnt/d -o codepage...其实,每次开机时,linux自动将需要挂载的linux分区挂载上了。那么我们是不是可以设定让 linux在启动的时候也挂载我们希望挂载的分区,如windows分区,以实现文件系统的自动挂载呢 ?...在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统 的列表。...在最后两行是我手工添加的windows下的C;D盘,加了codepage=936和iocharset=cp936参数以支 持中文文件名。...参数defaults实际上包含了一组默认参数: rw 以可读写模式挂载 suid 开启用户ID和群组ID设置位 dev 可解读文件系统上的字符或区块设备 exec 可执行二进制文件 auto 自动挂载

    3.1K30

    linux网络编程系列(七)--如何将socket设置成非阻塞的,非阻塞socket与阻塞的socket在收发数据上的区别

    非阻塞和阻塞在收发数据时有什么区别 3.1 发送时的区别 3.1.1 TCP发送(即send函数) send函数在阻塞模式下,会等待所有数据都被拷贝到发送缓冲区才会返回,也就是说,阻塞模式下,send函数返回值必定是参数中发送长度的大小...; send函数在非阻塞模式下,会立即返回,但是会尽可能的多拷贝数据到缓冲区,但不保证全部拷贝后返回,因此非阻塞模式下,send函数返回值可能比参数中发送长度小,而如果缓冲区满了的话,就会立即返回; 3.1.2...非阻塞模式也一样。...3.2 接收时的区别 3.2.1 TCP接收(即recv函数) 在阻塞模式下, recv将会阻塞,直到缓冲区里有至少一个字节才返回,当没有数据到来时,recv会一直阻塞或者直到超时,不会返回; 在非阻塞模式下...将会阻塞,直到缓冲区里有一个完整UDP数据包才会返回; 在非阻塞模式下,recvfrom函数会立即返回, 如果缓冲区有一个完整数据包,就会返回数据报大小,如果没有数据,也是返回错误WSAEWOULDBLOCK

    3.5K30

    Linux From Scratch(LFS11.0)使 LFS 系统可引导 - 创建 etcfstab 文件

    MS-DOS 或 Windows 的文件系统 (如 vfat、ntfs、smbfs、cifs、iso9660、udf) 时,需要一个特殊的挂载选项 —— utf8,才能正常解析文件名中的非 ASCII...为了避免这个问题,在使用 UTF-8 locale 时,需要用特殊选项 utf8 代替 iocharset=utf8。...注意此时使用的 iocharset 默认为 iso8859-1 (这保证文件系统是大小写不敏感的),而 utf8 选项告诉内核使用 UTF-8 编码转换文件名,这样它们就能在 UTF-8 locale...无法在编译内核时为 ntfs 文件系统指定这些默认值。 在某些硬盘上,通过将 barrier=1 挂载选项加入 /etc/fstab,可以使得 ext3 文件系统在发生电源故障时更可靠。...为了检查磁盘驱动器是否支持该选项,在可用的磁盘驱动器上运行 hdparm。例如: hdparm -I /dev/sda | grep NCQ 如果输出内容不为空,说明该选项可用。

    92220

    【Linux探索学习】第二十三弹——理解文件系统:认识硬件、探索文件在硬件上的存储问题

    这就是今天我们要解决的问题——理解文件在硬件上的管理操作 1....文件名 ls -l读取存取在磁盘上的文件信息,然后显示出来 除了用ls -l外,我们还可以通过stat指令查看更多的文件信息 stat 文件名 其中我们需要重点了解的就是inode,这也是本篇的重点...,这是为了存储更多的内容,因此当我们查找磁盘中的文件时就需要定位不同的磁头和盘片,并定位盘片上的不同区域 下面我们来看一下磁盘的具体的存储结构 2.1.2 磁盘的存储结构 我们先来看一下磁盘的具体划分...而每个磁道对应的扇区数量也是一样的,所以每个盘面对应的扇区个数是相等且可计算的,所以我们就可以通过相关计算实现逻辑地址和物理地址的互相转换 比如下面这个例子: 所以操作系统只需要关注磁盘的逻辑地址就可以了,在查找相应资源时会自动转化为物理地址...中记录下文件的内容所存放的编号,这样以后在使用文件时就可以通过对应的编号来找到文件的内容 下面我们来看一下文件的存储结构中各部分内容分别代表什么 1、Super Block:文件系统的基本信息:文件系统的格式等整个分区的基本使用情况

    8210

    Java程序员必须搞懂的 Linux 知识大全!

    Java技术栈 www.javastack.cn 关注阅读更多优质文章 学习Linux的重要性相信不用我多说大家也明白,以下是小编总结的常用Linux基础知识以及面试常问的Linux命令,希望能帮助大家更规范地理解和使用...一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括: 文件类型,权限,UID,GID 链接数(指向这个文件名路径名称个数) 该文件的大小和不同的时间戳 指向磁盘上文件的数据块指针 有关文件的其他数据...|命令2 把命令1的STDOUT保存在文件中,做为命令2的输入 -a追加 使用 -保存不同阶段的输出 -复杂管道的故障排除 -同时查看和记录输出 文件查找 在文件系统上查找符合条件的文件 文件查找:locate...,find 非实时查找(数据库查找):locate 实时查找:find Locate命令 locate KEYWORD 有用的选项 -i 不区分大小写的搜索 -n N 只列举前N个匹配项目 -r 使用正则表达式...德·摩根定律 (非A)或(非B)=非(A且B) (非A)且(非B)=非(A或B) 示例: !A -a!B=!(A -o B) !A -0!B=!(A -a B) 根据文件大小来查找 ?

    93051

    Python 学习笔记 (8)—— sy

    root@node1 python]# python os.py  The clear command is : clear sys.exit(n)        设置退出返回值(0表示正常退出,其他非0...,可以先执行reload(sys),再执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。...()    获取文件系统使用编码方式 >>> sys.getfilesystemencoding() 'UTF-8' sys.stdin,sys.stdout,sys.stderr 标准输入和标准错误 ...raise Exception, 'this error will be logged'     # 引发一个异常,没有在屏幕上打印出任何东西,所有正常的跟踪信息已经写进error.log 还要注意你既没有显式关闭日志文件...,比如--help,得到的就是help 若取得的值为"help" 则显示帮助信息,若取得的值为"version",则显示版本信息 若没有匹配到任何选项,则显示“Unknown option” 若直接加文件名

    86330

    全功能数据库管理工具-RazorSQL 10大版本发布

    可以在查看菜单中更改此设置 语法高亮颜色:添加了为深色和非深色用户界面设置不同语法高亮颜色的功能 颜色:添加了为深色和非深色用户界面设置不同前景色和背景色的功能 启动时间减少约 10% 自动完成/自动查找...:在弹出窗口中添加了列数据类型和大小 Windows:改进了使用缩放超过 100% 的 Windows 系统上的用户界面缩放 Linux:RazorSQL 将在某些 Linux 系统上自动缩放显示 二进制数据编辑器.../自动完成窗口字体现在设置为相对于编辑器字体的大小 自动查找/自动完成窗口位置更好地适应 RazorSQL 在屏幕上的位置 从高分辨率显示器移动到非高分辨率显示器时,RazorSQL 不再自动最大化,除非之前的宽度和高度大于新显示器上的最大屏幕分辨率...Windows 7 机器上启动 MySQL:创建函数工具将 IN 关键字放在参数前面 文件系统浏览器:Windows / Linux:文件名可能会被截断 文件系统浏览器:突出显示与文件名标签不匹配的日期和大小标签的颜色前景...Mac:如果从视图菜单中选择暗模式,将选择切换到自动检测暗/亮模式不再重新打开自动检测 Mac:文件系统浏览器:如果自动检测深色/浅色模式已打开,并且 Mac 处于浅色或灰色模式,则文件系统浏览器上的突出显示颜色不正确

    3.9K20

    记录一个解决Arm Linux端U盘挂载时文件名显示乱码、Qt显示乱码的问题

    摘要:解决嵌入式Linux平台下挂载盘文件名乱码、QT显示乱码问题。...进行挂载,执行命令如下: mount /dev/sda4 /mnt/ 如下图所示: 我们能够看到在Window PC端的文件在ARM端下却没有办法正常显示,体现在如下几个方面: 文件名显示乱码...因此,我们需要在mount命令后面加一个指定字符集的参数iocharset,一般情况下,简体中文是936或者gb2312,而我的开发板文件系统时utf8。...将以上挂载命令修改为: mount -t vfat -o iocharset=utf8 /dev/sda4 /mnt/ 执行后可以看到: 此时在ARM端的显示挂载和查看已经显示正常,这是因为我已经在...但是在QT端还是没办法将中文显示出来, 2、解决嵌入式Linux下Qt显示中文乱码 出现乱码的原因是因为ARM端的QT不知道采用什么方式去解码,因此我们需要添加解码方式,头文件如下: #include

    3.3K30

    低调的 Linux 文件系统家族

    Linux 文件系统基本概念 Linux 在最初的设计是 MINIX1 文件系统,它只支持 14 字节的文件名,它的最大文件只支持到 64 MB。...这使他成为 Linux 的主要文件系统。只不过 Linux 会使用 VFS 曾支持多种文件系统。在 Linux 链接时,用户可以动态的将不同的文件系统挂载倒 VFS 上。...❞ 当程序要求打开一个文件时,内核会进行如下操作 授予访问权限 在全局文件表(global file table)中创建一个条目(entry) 向软件提供条目的位置 文件描述符由唯一的非负整数组成,系统上每个打开的文件至少存在一个文件描述符...Linux 虚拟文件系统 为了能够使应用程序能够在不同类型的本地或者远程设备上的文件系统进行交互,因为在 Linux 当中文件系统千奇百种,比较常见的有 EXT3、EXT4,还有基于内存的 ramfs、...如果使用相对路径,那么就会从当前目录开始查找,否则就会从根目录进行查找。 目录文件的文件名最高不能超过 255 个字符,它的分配如下图所示 ?

    1K41

    文件系统:隐匿在 Linux 背后的机制

    在 Linux 中,最直观、最可见的部分就是 文件系统(file system)。下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及文件系统实现背后的原理和思想。...Linux 文件系统基本概念 Linux 在最初的设计是 MINIX1 文件系统,它只支持 14 字节的文件名,它的最大文件只支持到 64 MB。...ext 系统相较于 MINIX 1 来说,在支持字节大小和文件大小上均有很大提升,但是 ext 的速度仍没有 MINIX 1 快,于是,ext 2 被开发出来,它能够支持长文件名和大文件,而且具有比 MINIX...这使他成为 Linux 的主要文件系统。只不过 Linux 会使用 VFS 曾支持多种文件系统。在 Linux 链接时,用户可以动态的将不同的文件系统挂载倒 VFS 上。...当程序要求打开一个文件时,内核会进行如下操作 授予访问权限 在全局文件表(global file table)中创建一个条目(entry) 向软件提供条目的位置 文件描述符由唯一的非负整数组成,系统上每个打开的文件至少存在一个文件描述符

    77030

    数据库简介

    二 文件系统阶段 20世纪50年代后期到60年代中期 硬件水平:有了磁盘、磁鼓等可直接存取的存储设备 软件水平:有了操作系统,并且操作系统中已经有了专门的数据管理软件,即文件系统;处理方式上不仅有了批处理...,而且能够联机实时处理 文件系统管理数据具有以下优点: 1 数据可以长期保存:计算机大量用于数据处理,因而数据需要长期保存,进行增删改查操作 2 由文件系统管理数据:文件系统这个软件,把数据组织成相对独立的数据文件...,利用按文件名,按记录进行存取。...:mongodb,redis,memcache #可以简单的理解为: 关系型数据库需要有表结构 非关系型数据库是key-value存储的,没有表结构 四 下载安装 Linux版本 #二进制...一些必要的初始配置 1)修改字符集为UTF8 vi /etc/my.cnf 在[client]下面添加 default-character-set = utf8 在[mysqld]下面添加 character_set_server

    1K70

    SQL学习笔记一之初识数据库

    二 文件系统阶段 20世纪50年代后期到60年代中期 硬件水平:有了磁盘、磁鼓等可直接存取的存储设备 软件水平:有了操作系统,并且操作系统中已经有了专门的数据管理软件,即文件系统;处理方式上不仅有了批处理...,而且能够联机实时处理 文件系统管理数据具有以下优点: 1 数据可以长期保存:计算机大量用于数据处理,因而数据需要长期保存,进行增删改查操作 2 由文件系统管理数据:文件系统这个软件,把数据组织成相对独立的数据文件...,利用按文件名,按记录进行存取。...:mongodb,redis,memcache #可以简单的理解为: 关系型数据库需要有表结构 非关系型数据库是key-value存储的,没有表结构 四 下载安装 Linux版本 #二进制...一些必要的初始配置 1)修改字符集为UTF8 vi /etc/my.cnf 在[client]下面添加 default-character-set = utf8 在[mysqld]下面添加 character_set_server

    51510

    Git汇总--常见问题及延伸阅读

    文件名大小写问题 Linux、Solaris、BSD及其他类Unix操作系统使用的是大小写敏感的文件系统,而Windows和Mac OS X(默认安装)的文件系统则是大小写不敏感的文件系统。...即用文件名README、readme以及Readme(混合大小写)进行访问,在Linux等操作系统上访问的是不同的文件,而在Windows和Mac OS X上则指向同一个文件。...换句话说,两个不同文件README和readme在Linux等操作系统上可以共存,而在Windows和Mac OS X上,这两个文件只能同时存在一个,另一个会被覆盖,因为在大小写不敏感的操作系统看来,这两个文件是同一个文件...\\r”表示:用于DEC TOPS-10、RT-11和其他早期的非Unix,以及CP/M、MP/M、DOS(MS-DOS、PC-DOS等)、Atari TOS、OS/2、Microsoft Windows...搜索工作区内容 $ git grep '搜索内容' 子模块管理 打包 补丁 hooks 文件追述 git blame 二分查找,快速定位版本问题

    50841

    MySQL字符集详解

    为例,生产中多数时linux,在linux里面除了latin1之外都是utf8的字符集):     mysql> show variables like "%char%";     +--------...,不要去改动它. character_sets_dir:这是mysql字符集编码存储文件夹. character_set_filesystem:这是文件系统字符集编码,主要用于解析用于文件名称的字符串字面值...",文件名称为GBK编码.反之,假设我们设置了character_set_filesystem=UTF8,则导出的文件名称为UTF8编码....比如:linux系统的终端编码是UTF8,系统默认语言和编码为zh_CN.UTF8.我们有一个数据库名为test,test中有个表名为t1,编码为latin1,另外,我们在mysqlclient运行了SET...关于系统的编码主要针对的是我们将来在存储文件的时候,有可能会将文件直接存贮在mysql的服务器上,那么,我们在数据库里面存的就是这些文件的路径,实际文件是存在系统里面的,那么文件名称就会受到你系统编码的影响

    3.4K10

    linux基础分享四

    通配符 命令操作对象进行模糊匹配时使用,绝大多数linux命令都支持通配符。 linux常用的通配符有如下两种: *:代表任意字符(0到多个) ?...文件查找命令 linux中主要有两种查找文件命令:find和locate find:实时查找,通过遍历指定起始路径下文件系统层级结构,根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空...find /etc -name '*abc*':在/etc目录下查找文件名中含有字符串‘abc’的文件。 find / -amin -5:查找在系统中最后5分钟访问的文件(access time)。...find /etc | grep local 在/etc目录下查找含有local这几个字母的所有文件或者目录 locate:非实时查找,根据索引数据库,匹配文件信息进而定位符合条件的文件。...在Linux中使用locate命令,首先需要安装它。 在CentOS中,使用yum install mlocate来安装locate。

    50930

    Linux面试题整理

    内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。...系统内存管理 应用程序管理 硬件设备管理 文件系统管理 Linux 的体系结构 从大的方面讲,Linux 体系结构可以分为两块: 用户空间(User Space) :用户空间又包括用户的应用程序(User...作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell 脚本)来完成这些日常工作任务。 如何规划一台 Linux 主机,步骤是怎样?...-i 提示 -r 复制目录及目录内所有项目 -a 复制的文件与原文件时间一样 find 命令 用于在文件树中查找文件,并作出相应的处理。...命令选项: -name 按照文件名查找文件 -perm 按文件权限查找文件 -user 按文件属主查找文件 -group 按照文件所属的组来查找文件。

    90010
    领券