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

fiei3ece  于 5个月前  发布在  Linux
关注(0)|答案(2)|浏览(102)

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

daolsyd0

daolsyd01#

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

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

字符串
或者使用ssh并通过stdin进行数据传输(允许更大的灵活性,比如权限修改)。
(对于原来的问题,方向需要改变,我的例子是从Linux到Windows,很明显)。

s1ag04yj

s1ag04yj2#

这是一个已知的情况,当你从windows传输文件到Linux。
实用程序dos2unix和unix2dos可用于从Unix命令行转换文件。
要将Windows文件转换为Unix文件,请输入:

dos2unix winfile.txt unixfile.txt

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

unix2dos unixfile.txt winfile.txt

相关问题