gpt4 book ai didi

Linux untar 命令将文件名显示为问号

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:47 30 4
gpt4 key购买 nike

不久前,我使用 Linux“tar -cf”命令压缩了一个应用程序。当时一些文件名使用的是不同的语言。

现在,当我使用“tar -xf”解压缩时,它会将另一种语言的文件名显示为问号。

有没有办法在我解压缩时保持原始文件名不变?

非常感谢您的帮助。

最佳答案

好问题!预计与任何 Unix 命令一样,tar 可以将其输出通过管道传输到另一个程序,如果可能的话,包括文件名数据。快速谷歌搜索表明是这种情况:如这篇博文所述,GNU tar 支持 --to-command 参数将输出写入管道,而不是直接在目录上操作。

http://osmanov-dev-notes.blogspot.com.br/2010/07/how-to-handle-filename-encodings-in.html

所以这是编写一个脚本将文件名转换为 UTF-8 的问题,就像在引用的帖子中所做的那样。另一种选择,也在文本中描述,在您阅读后变得显而易见,即简单地提取所有内容,然后编写脚本来转换目录中的每个文件。链接中有一个简单的 php 脚本可以执行此操作。

最后,您始终可以借助脚本语言编写自己的自定义 tar 版本,这很容易。例如,Python 在标准库中内置了 tarfile 模块:

http://docs.python.org/2/library/tarfile.html#examples

您可以在循环中使用 TarFile.extractfile()、shutils.copyfileobj() 和 str.decode() 来手动提取文件,同时更改文件名编码。

引用资料:

http://www.gnu.org/software/tar/manual/tar.html#SEC84

http://docs.python.org/2/library/tarfile.html

http://www.manpagez.com/man/1/iconv/

关于Linux untar 命令将文件名显示为问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912298/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com