这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 convmv,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
convmv - 将文件名从一种编码转换为另一种编码
概要
转换 [选项] 文件(S)...目录(S)
配置
-f 编码
指定应从中转换的文件名的当前编码
-t 编码
指定文件名应转换为的编码
-i 交互模式(每个动作问y/n)
-r 递归遍历目录
--nfc
目标文件将是 UTF-8(Linux 等)的规范化形式 C
--nfd
目标文件将是 UTF-8(OS X 等)的规范化形式 D。
--q来自 , --qto
对重命名的“从”或“到”更加安静(如果它搞砸了你的终端
例如)。 这实际上只会替换任何非 ASCII 字符
(按字节)与 ? 和任何打印输出带有 * 的控制字符,这不会影响
重命名操作本身。
--执行 命令
执行给定的命令。 您必须引用命令,#1 将被替换为
旧的,#2 的新文件名。 使用此选项链接目标将保持不变。
示例:
convmv -f latin1 -t utf-8 -r --exec "echo #1 应该重命名为 #2" path/to/files
- 列表
列出所有可用的编码。 获得对更多中文或日文编码的支持
安装 Perl HanExtra 或 JIS2K 编码包。
--低内存
通过不创建所有文件的哈希来保持低内存占用。 这将禁用检查
如果符号链接目标在子树中。 符号链接目标指针将被转换
不管。 如果您转换数十万或数百万个文件,内存
convmv 的使用率可能会增长得相当高。 在这种情况下,此选项将帮助您解决问题。
——不聪明
默认情况下,convvv 会检测文件名是否已经是 UTF8 编码,并会跳过这个
文件,如果应该执行从某些字符集到 UTF8 的转换。 “--nosmart”将
还强制将此类文件转换为 UTF-8,这可能会导致“双重编码
UTF-8”(见下文)。
--修复双精度
使用“--fixdouble”选项 convmv 只会转换仍将是
转换后的 UTF-8 编码。 这对于修复双重编码的 UTF-8 文件很有用。
所有不是 UTF-8 或转换后不会产生 UTF-8 的文件将不会被
感动。 另请参阅下面的“如何撤消双 UTF-8 ...”一章。
--notes
需要实际重命名文件。 默认情况下,convmv 只会打印它想要的内容
做。
--可解析
这是一个高级选项,想要编写 GUI 前端的人会发现
有用(也可能是其他一些)。 它将 convv make 打印出它会在一个
容易解析的方式。 第一列包含操作或某种信息,
第二列主要包含要修改的文件,如果合适的话
第三列包含修改后的值。 每列由 \0\n 分隔
(空字节换行符)。 每一行(一个动作)由 \0\0\n 分隔(空字节空字节
新队)。
--不保留时间
修改文件名通常会导致更新父目录的 mtime。 自从
默认情况下,版本 2 convvv 将 mtime 重置为旧值。 如果你的文件系统
支持亚秒分辨率 atime 和 mtime 的亚秒部分将丢失
因为 Perl 还不支持。 使用此选项,您可以 关闭 保存
的时间。
- 代替
如果要重命名的文件已经存在,则该文件将被覆盖,如果
其他文件内容相同。
——逃逸
此选项将从文件名中删除这个丑陋的 % 十六进制序列并将它们转换为
(希望)更好的 8 位字符。 在 --unescape 之后你可能想要做一个字符集
转换。 通过下载时有时会产生像 %20 等这样的序列
http 或 ftp。
- 上 , - 降低
将文件名全部大写或全部小写。 当文件不是 ASCII 编码时,
convmv 期望通过 -f 开关输入字符集。
--地图=一些额外的映射
应用一些自定义字符映射,目前支持的有:
ntfs-sfm(-undo), ntfs-sfu(-undo) 用于Linux下非法ntfs字符的映射
或 Macintosh cifs 客户端(参见 MS KB 117258 也映射 mount.cifs 的挂载选项
在 Linux 上)。
ntfs-pretty(-undo) 用于将非法 ntfs 字符映射到相当合法的字符
他们的日文版。
查看 map_get_newname() 函数如何在需要时轻松添加自己的映射。 让我来
知道您是否认为 convvv 在这里缺少一些有用的映射。
——多莱西
关心无点 i/I 问题。 “I”的小写版本也将是无点的
而“i”的大写版本也将被点缀。 这是土耳其人的问题
和阿塞拜疆人。
顺便说一句:字母 i 的上标点是在中世纪添加的
将(手稿中的)字母与此类字母中的相邻垂直笔画区分开来
如 u、m 和 n。 J 是 i 的变体形式,出现在此时和随后
变成了单独的一封信。
- 帮帮我
打印可用选项的简短摘要
--转储选项
打印所有可用选项的列表
商品描述
转换 旨在帮助转换单个文件名、目录树和包含的
文件或整个文件系统转换为不同的编码。 它只是转换文件名,而不是
文件的内容。 convvv 的一个特点是它也照顾
符号链接,也转换符号链接目标指针,以防符号链接目标被
也转换了
当您想从旧的 8 位语言环境切换到 UTF-8 时,所有这些都非常方便
语言环境。 也可以将目录转换为 UTF-8 已经部分
UTF-8 编码。 convmv 能够检测某些文件是否是 UTF-8 编码的并且会跳过
默认情况下。 要关闭这种智能,请使用“--nosmart”开关。
文件系统 问题
几乎所有 POSIX 文件系统都不关心文件名的编码方式,这里有一些
例外情况:
HFS + on OS X / 达尔文
Linux 和(大多数?)其他类 Unix 操作系统使用所谓的规范化形式 C
(NFC) 默认情况下其 UTF-8 编码,但不强制执行此操作。 达尔文,基地
Macintosh OS 强制执行规范化形式 D (NFD),其中一些字符被编码为
不同的方法。 在 OS X 上,无法创建 NFC UTF-8 文件名,因为这是
在文件系统层阻止。 在 HFS+ 上,文件名内部存储在 UTF-16 中,当
转换回 UTF-8,为了使底层 BSD 系统易于处理,创建了 NFD。
参见 http://developer.apple.com/qa/qa2001/qa1173.html 对于失败。 我认为这是一个非常
坏主意并在 OS X 下破坏了许多期望正常 POSIX 符合系统的东西。
在其他任何地方,convmv 都能够将文件从 NFC 转换为 NFD,反之亦然,这使得
与此类系统的互操作性要容易得多。
JFS
如果人们用iocharset=utf8挂载JFS分区,也会有类似的问题,因为
JFS 也旨在以 UTF-16 格式在内部存储文件名; 那是因为 Linux 的 JFS
实际上是 JFS2,它是对 OS/2 的 JFS 的重写。 JFS 分区应该总是
使用 iocharset=iso8859-1 安装,这也是最近 2.6.6 内核的默认设置。 如果
这还没有完成,JFS 的行为不像 POSIX 文件系统,而且可能会发生
某些文件根本无法创建,例如 ISO-8859-1 编码的文件名。 仅有的
当需要与 OS/2 互操作时,iocharset 应根据您使用的进行设置
语言环境魅力图。
网络文件系统4
尽管其他 POSIX 文件系统 RFC3530 (NFS 4) 强制要求 UTF-8 但也说:“
nfs4_cs_prep 配置文件未指定规范化形式。 此后的修订
规范可能会指定一个特定的规范化形式。”换句话说,如果你想
使用 NFS4,您可能会发现 convvv 的转换和规范化功能非常有用。
脂肪/VFAT 和 NTFS
NTFS 和 VFAT(用于长文件名)在内部使用 UTF-16 来存储文件名。 你应该
如果您挂载这些文件系统之一,则不需要转换文件名。 使用适当的
安装选项代替!
创新中心 至 复原 翻番 UTF-8 (或 其他) 编码 档名
有时您可能会“双重编码”某些文件名,例如
文件名已经是 UTF-8 编码的,你不小心从某些
字符集为 UTF-8。 您可以通过反过来转换来简单地撤消它。 这
from-charset 必须是 UTF-8,to-charset 必须是你之前的 from-charset
不小心使用了。 如果您使用“--fixdouble”选项 convmv 将确保只有
将处理转换后仍为 UTF-8 编码的文件,它将
保持非 UTF-8 文件不变。 您应该通过执行以下操作来检查以获得正确的结果
之前没有“--notes”的转换,“--qfrom”选项也可能会有所帮助,因为
如果正在打印双 utf-8 文件名,它们可能会搞砸您的终端 - 它们
通常包含对终端窗口执行有趣操作的控制序列。 如果你
不确定意外转换的字符集,使用“--qfrom”是一个
在不破坏文件名的情况下最终解决所需编码的好方法。
创新中心 至 修复 桑巴 档
当在 smb.conf(Samba 2.x)中时,没有设置正确的“字符集”
变量,从 Win* 客户端创建的文件正在客户端的
代码页,例如西欧语言的 cp850。 结果是这些文件
如果你在 Unix 服务器上“ls”它们,包含非 ASCII 字符会搞砸。 如果你
之后将“字符集”变量更改为iso8859-1,新创建的文件就可以了,
但是旧文件仍然在 Windows 编码中被搞砸了。 在这种情况下,convvv 可以
也可用于将旧的 Samba 共享文件从 cp850 转换为 iso8859-1。
顺便说一句:Samba 3.x 最终默认映射到 UTF-8 文件名,所以在迁移时也是如此
从 Samba 2 到 Samba 3,您可能需要转换文件名。
网聊 互通性 问题
当 Netatalk 切换到版本 8 支持的 UTF-2 时,它不是
足以重命名文件名。 需要做的更多。 看
http://netatalk.sourceforge.net/2.0/htmldocs/upgrade.html#volumes-and-filenames 和
有关详细信息,请参阅 Netatalk 的 uniconv 实用程序。
使用 onworks.net 服务在线使用 convvv