- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
不久前,我使用 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
关于Linux untar 命令将文件名显示为问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912298/
这似乎是一个非常简单的问题,但对于我来说我无法弄清楚。 我想做的就是解压缩并提取 tar.gz 文件的内容。在 godoc 上,似乎有一个函数的引用正是这样做的。 (https://godoc.org
不久前,我使用 Linux“tar -cf”命令压缩了一个应用程序。当时一些文件名使用的是不同的语言。 现在,当我使用“tar -xf”解压缩时,它会将另一种语言的文件名显示为问号。 有没有办法在我解
我正在编写一个 iPhone 应用程序,它从网络服务器下载一个 tar-gzip 压缩文件,然后需要解压该文件,以便将其复制到应用程序的 Documents 文件夹中。 我使用 tar/gzip 是因
我是 R 编程语言的新手,并且遇到了一些基本问题。我想解压缩一个文件,但它对我不起作用。 这是我输入的代码: untar("CD_data.tar", exdir="data") 然后它返回以下错误消
如何在不使用 exec('tar') 或任何其他命令的情况下使用纯 PHP 在 php 中解压缩文件? 我的问题如下;我有一个 26mb 的 tar.gz 文件需要上传到我的服务器并解压缩。我试过用n
我想要执行与此 shell 脚本等效的操作: ssh visarend.solasistim.net tar -c /home/amoe/episodes | tar -vx - 但是使用 Fabri
我目前正在将 CVS 存储库转换为多个 git 存储库。 cvs2git 进程很好,但是我在运行 filter-branch 命令时遇到了问题。我使用简单的脚本测试命令,因为主存储库大小为 4Go,提
情况是这样的。我有一个需要提取和设置的 URL 列表。它都是变量驱动的,但在我提取后,我不知道我的文件夹将被称为什么。如果我不知道它叫什么,我就不能 CD 进去。 $DL_DIR = /opt/ $U
尝试安装 Bower 时出现此错误。这是一个错误还是我做错了? 如果需要,我还有 4707 行 npm-debug.log 文件... 谢谢! 这是尝试在本地安装 Bower 时终端的转储,但我在全局
我正在从 USGS 订购一大堆陆地卫星场景,这些场景作为 tar.gz 存档。我正在编写一个简单的 python 脚本来解压缩它们。每个文件包含 15 张大小为 60-120 MB 的 tiff 图像
我在 EC2 Linux AMI 实例上尝试使用 CPAN 安装各种 CPAN 模块。从典型安装开始(YAML 只是一个示例)... sudo yum install perl-CPAN Packag
我在 Mac 上创建了一个新用户并尝试了此操作。这通常适用于我的其他帐户。这个新用户也是管理员。 npm ERR! tar.unpack untar error /Users/test/.npm/
我有一个包含小型 git 存储库的目录。 git status 和 gitk --all,显示没有未提交的更改。 如果我用 tar/compress 这个目录: tar czf git-repo.ta
我是一名优秀的程序员,十分优秀!