对于名称中含有点和其他符号的目录,与 rsync 同步输出错误“无效参数 (22)”

对于名称中含有点和其他符号的目录,与 rsync 同步输出错误“无效参数 (22)”

我尝试使用 同步/dir1(ext4) 和/dir2(ntfs) rsync -azP,但出现以下错误:

rsync: recv_generator: mkdir "dir2/X.Y." failed: Invalid argument (22)

rsync: recv_generator: mkdir "dir2/CATSNDOGS\#123.11." failed: Invalid argument (22)

请注意,目录X.Y.CATSNDOGS #123.11.是由其他方创建的,并按其名称命名,下载(使用 Python 脚本)到/dir1.

我无法cd进入这些目录,也ls -d没有列出它们。另一方面,基于 GUI鹦鹉螺完美地展示了它们和其中的内容。

答案1

问题是rsync尝试在 NTFS 分区中创建包含非法字符的目录。从命名约定

使用当前代码页中的任何字符作为名称,包括 Unicode 字符和扩展字符集中的字符 (128–255),但以下字符除外:

The following reserved characters:   
 > (less than)
 < (greater than)   
 : (colon)   
 " (double quote)   
 / (forward slash)   
 \ (backslash)   
 | (vertical bar or pipe)   
 ? (question mark)   
 * (asterisk)

文件名或目录名请勿以空格或句点结尾。尽管底层文件系统可能支持此类名称,但 Windows shell 和用户界面不支持。但是,可以将句点指定为名称的第一个字符。例如,“.temp”。


您失败的目录有,或非法字符或以句点结尾。

答案2

迟到的答案,但这会有所帮助,我遇到了与此处类似的问题(rsync:[sender] readlink_stat 返回失败:无效参数(22))。该文件夹也没有在 Dolphin 中显示。我卸下了 NTFS 驱动器并chkdsk drive: /r /f在 Windows 中运行它,并修复了有问题的文件夹(该文件夹是孤立的),以及许多其他未索引和孤立的文件,其名称缩写为FILE~2.TXT.它还修复了诸如“文件中索引的 VCN 已被使用”之类的错误。回到 Linux rsync 工作没有问题。

另外,dmesg/journalctl -ke我发现了数百个“nftfs3:sdb2:ino = 1dc0“文件夹”目录损坏”错误。

相关内容