Filenames

文件名中的特殊字元 (#033OA)

  • August 31, 2011

在 rsync 期間,我遇到了一個非常頑固的錯誤的小問題。這是由文件名中包含特殊字元的文件引起的。還有其他人,但我可以通過對文件名的編碼進行一些轉換來解決這個問題。但是,我什至找不到這個文件。

所以這就是 rsync 所說的:

../.\#033OA.tex.pyD0MB" failed: No such file or directory (2)

注意到的第一件事是字元程式碼不能是十六進製或八進制,所以我用Google搜尋了它,只找到了這個。所以它可能是一個CURSOR UP字元(或不是)。我試過了

ls -la *`printf '\033OA'`*

無濟於事。我也嘗試過將該目錄的 ls 輸出管道化,od但無濟於事。

我還可以做些什麼?或者我到底在尋找什麼角色?

謝謝

您可以使用-bto 選項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反复按,直到插入奇怪的名稱。

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