Filenames
文件名中的特殊字元 (#033OA)
在 rsync 期間,我遇到了一個非常頑固的錯誤的小問題。這是由文件名中包含特殊字元的文件引起的。還有其他人,但我可以通過對文件名的編碼進行一些轉換來解決這個問題。但是,我什至找不到這個文件。
所以這就是 rsync 所說的:
../.\#033OA.tex.pyD0MB" failed: No such file or directory (2)
注意到的第一件事是字元程式碼不能是十六進製或八進制,所以我用Google搜尋了它,只找到了這個。所以它可能是一個
CURSOR UP
字元(或不是)。我試過了ls -la *`printf '\033OA'`*
無濟於事。我也嘗試過將該目錄的 ls 輸出管道化,
od
但無濟於事。我還可以做些什麼?或者我到底在尋找什麼角色?
謝謝
您可以使用
-b
to 選項ls
,它將非圖形字元顯示為 C 樣式的轉義序列。
ls -aq
將列印所有文件名,?
而不是每個不可列印的字元。在許多 unix 變體上,ls -AB
或者ls -Ab
(檢查您的手冊頁)將列印八進制轉義。使用ls -aq
,您可以將顯示的輸出用作 shell 模式。$ ls -Aq .?OA.tex.pyD0MB … more stuff … $ mv -i .?OA.tex.pyD0MB weird-file $ less weird-file
以某種方式獲取文件名的另一種方法是使用 shell 的補全:輸入
mv .
並Tab
反复按,直到插入奇怪的名稱。