Igo*_* V. 6 bash rsync filenames mkdir
我尝试使用 同步/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)
Run Code Online (Sandbox Code Playgroud)
请注意,目录X.Y.和CATSNDOGS #123.11.是由其他方创建的,并按其名称命名,下载(使用 Python 脚本)到/dir1.
我无法cd进入这些目录,也ls -d没有列出它们。另一方面,基于 GUI 的nautilus完美地显示了它们以及其中的内容。
问题是rsync尝试在 NTFS 分区中创建包含非法字符的目录。来自命名约定
\n\n使用当前代码页中的任何字符作为名称,包括 Unicode 字符和扩展字符集中的字符 (128\xe2\x80\x93255),但以下字符除外:
\nRun Code Online (Sandbox Code Playgroud)\nThe following reserved characters: \n > (less than)\n < (greater than) \n : (colon) \n " (double quote) \n / (forward slash) \n \\ (backslash) \n | (vertical bar or pipe) \n ? (question mark) \n * (asterisk)\n
还
\n\n\n文件名或目录名请勿以空格或句点结尾。尽管底层文件系统可能支持此类名称,但 Windows shell 和用户界面不支持。但是,可以将句点指定为名称的第一个字符。例如,“.temp”。
\n
您失败的目录有,或非法字符或以句点结尾。
\n