无法复制文件,因为文件名太长

时间:2015-07-15 12:43:33

标签: sed windows-7

我有一个外置硬盘。外部HDD只有1个NTFS主分区。它上面有一些文件,但我有很多文件夹。这些文件夹中有文件夹,这些文件夹中有文件夹等......

当我尝试将文件从外部硬盘复制到内置硬盘上的NTFS分区时,某些文件不会被复制,因为它们的文件名太大了。

有没有办法,例如,使用 sed 命令的正则表达式或者将这些文件重命名为较小的名称。我想在Linux中启动,重命名文件,然后再次启动到Windows。 ~500个文件名存在问题,我无法手动搜索这些文件来更改其名称。

很抱歉,如果我发布的地方不对。我认为这被认为是一个编程问题。

3 个答案:

答案 0 :(得分:1)

使用Robocopy复制文件! (Robocopy对于删除太长的文件/文件夹也很有用。

从cmd提示符运行:

robocopy C:\source\folder K:\destination\folder /e

这只是将源文件夹复制到目标,而/ e开关复制子文件夹,包括空目录。 More info and examples

答案 1 :(得分:0)

这就是为什么你应该总是避免使用长名称制作文件夹和文件,并且总是优先使用没有特殊编码的字符(例如总是简单的英文字符)。

在这种情况下,您需要一种使用工具从HDD获取数据的方法,因为由于您的缓存无法从您的操作系统中加载文件路径信息,复制粘贴无法正常工作。 如果您使用Windows,您可以尝试恢复工具,例如" Active @ File Recovery"

答案 2 :(得分:0)

当您将具有有效路径名< 255个字符的文件夹复制到子文件夹中时,会发生这种情况,使路径名的总长度大于255。

例如,我有一个名为的文件夹 C:\ mypath中\ thecompletepathtothisfolderis254characters 我将其移动或复制到: C:\ mylongerpath \ thecompletepathtothisfolderis254characters 现在路径名长6个字符,并且突破了255个字符的限制。

解决方案是将文件夹移回目录树的更高位置,以便路径名再次有效。然后,您可以将其重命名为较短的名称并将其移回,或者您可以将其保留在原位。

未超过255个字符限制,robocopy和其他软件将识别文件。