提取名称太长的文件

提取名称太长的文件

我下载了一个 rar 存档,但有些文件名太长,ubuntu 无法创建。我该如何提取所有文件?

ubuntu 上的默认存档管理器会检查大多数文件,失败并删除整个文件夹。Ark 会提取这些文件,但名称太长时会默默失败。

答案1

文件系统通常限制 255 个字符,这适用于唯一文件或目录名称,而不是其整个路径。因此将其提取到 /a 不会有帮助。问题是 RAR 文件格式允许存档包含名称可以超过 255 个字符的文件。

您可以通过将有问题的文件打印到标准输出并将其重定向到文件来解决此问题:

unrar -inul p archive.rar 过长的文件名 > 较短的名称

这将从 archive.rar 中提取过长的文件名,并将其保存到名为较短名称的文件中。

答案2

您可以尝试缩短它必须使用的路径...在 shell 中,即:

mkdir /a; cd /a
unrar /path/to/file/with/long/names .

(确保您sudo su -在 ubuntu 中,否则您将没有足够的权限写入根目录。)

而不是试图将文件提取到某个目录,例如/long/directory/name/some/path/where/fish/live/...您应该能够将它们提取到一个短目录中,例如/a

/从那里...您应该能够按照需要操作文件...和/或将它们放在它们应该去的地方。只需记住通过删除临时目录来清理您的文件即可。

答案3

我在使用 Bandcamp 的 mp3 时遇到了这个问题 - 它们的文件名中包含艺术家、专辑名称和歌曲名称,所以有时它们会很长!

我的解决方法是使用 Ark 的“预览”选项。

一旦我选择了有问题的文件并选择了预览,它就会开始在我的音乐播放器中播放(我使用 Clementine)。然后我在 Clementine 中右键单击该文件,然后单击“在文件浏览器中显示”。这将打开一个文件浏览器窗口,显示预览文件所在的临时目录(如果您使用没有此选项的其他音乐播放器,我想您只能手动找到该目录)。

然后我停止播放歌曲,然后在临时目录中快速重命名它,并将其剪切并粘贴到我想要的位置。

如果速度太慢,文件就会从临时目录中消失,您必须重新开始。

不知道它是否适用于其他文件类型。

希望这能帮助到像我一样从 Google 来到这里的任何人。作为一个非技术人员,我不明白“将有问题的文件打印到 stdout”是什么意思,但这个解决方法对我来说很有效!

相关内容