Bash

對於名稱中帶有點和其他符號的目錄,與 rsync 同步輸出錯誤“無效參數 (22)”

  • February 5, 2021

我嘗試使用 同步/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 的nautilus完美地顯示了它們和其中的內容。

問題是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”。


您失敗的目錄有,或非法字元或以句點結尾。

引用自:https://unix.stackexchange.com/questions/632707