我尝试使用 同步/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“文件夹”目录损坏”错误。