scp 文件到 Linux 自动将文件名转换为 utf8

问题描述 投票:0回答:2

众所周知,Windows在文件系统中使用ANSII对文件名进行编码,而Linux默认使用UTF-8。当我使用 SCP 或 FTP/SFTP 将文件从 Windows 传输到 Linux 时,传输的文件仍将采用 ANSII 编码。我希望我的 Linux 仅使用 UTF-8,那么如何在传输时重新编码文件名? 我知道有转换工具,但是我传输的时候可以自动转换吗?

linux utf-8 scp gbk
2个回答
0
投票

到目前为止我只找到了单个文件传输的解决方案:之前通过 iconv 手动翻译文件名,比如

scp $origFile user@remotesystem:c:/temp/$( basename "$origFile" | iconv -t ISO-8859-15 -f UTF-8 )

或使用 ssh 并通过 stdin 进行数据传输(允许更大的灵活性,例如权限修改)。

(原问题的方向需要改变,我的例子显然是从Linux到Windows)。

我的方式

GMA


-1
投票

这是将文件从 Windows 传输到 Linux 时发生的已知情况。

实用程序 dos2unix 和 unix2dos 可用于从 Unix 命令行转换文件。

要将 Windows 文件转换为 Unix 文件,请输入:

dos2unix winfile.txt unixfile.txt

要将 Unix 文件转换为 Windows,请输入:

unix2dos unixfile.txt winfile.txt
© www.soinside.com 2019 - 2024. All rights reserved.