所以我從 aMule 下載了一張音樂專輯,它位於.aMule/Incoming
目錄中。我嘗試使用以下命令將其移出:
mv albumName.rar ~
這給我留下了一個無法重命名的文件,因為波形符是為主目錄保留的~
。.aMule/Incoming
我知道我可以透過顯示隱藏檔案透過 Nautilus 存取它。如何在終端機中將其拉出?
更新 這是現在的樣子
manuzhang@manuzhang-R458-R457:~/.aMule/Incoming$ ls -l
total 328
-rw-r--r-- 1 manuzhang manuzhang 297266 2012-03-19 12:07 ~
-rw-r--r-- 1 manuzhang manuzhang 34479 2011-10-11 19:51 [kat.ph]friends.season.1.with.english.subtitles.torrent
答案1
mv \~ ~/albumName.rar
mv '~' ~/albumName.rar
mv ./~ ~/albumName.rar
您始終可以透過在 shell 中添加反斜線來保護在 shell 中具有特殊意義的字元。
您始終可以透過將序列放在單引號內來告訴 shell 按字面意思解釋序列。不能放入此類文字字串中的唯一字元是單引號本身,因為它指示文字字串的結尾。您可以使用'\''
;它的意思是“文字的結尾、字元'
、文字的開始”,但您可以將其視為將單引號放在單引號內的文字字串內的奇怪方式。
該字元~
僅在路徑開頭是特殊的,因此如果您放置目錄指示,~
則將是該目錄中檔案的名稱。
請注意,如果檔案名稱以 開頭-
,則只有這三種方法中的最後一種有效。這是因為-
對 shell 來說並不特別;它對該命令有特殊含義:它表示一個選項。防止這種特殊含義的另一種方法-
是將特殊選項放在--
其前面:--
在命令列上指示選項的結尾,只有檔案名稱(或其他非選項參數)可以在其後面。
另請注意,您顯示的命令應該已將檔案複製到您的主目錄,因為該~
字元應該由 shell 解釋。您可能輸入錯誤並創建了一個不名為~
.運行ls -q
或ls -Q
查看檔案名稱是否包含不可列印的字元。如果沒有提供任何視覺指示,請嘗試ls | od -t o1
,它將顯示檔案名稱中每個位元組的八進位代碼。在 ksh、bash 或 zsh 中,您可以$'\123'
在命令列中使用八進位代碼指定字元。或者,您也許能夠找到與該文件相符的模式。例如,如果您確定檔案名稱的長度為 3,且長度為 2 的其他檔案只有foo
和bar
,則可以使用
mv ./[^bf]?? ~/albumName.rar
如果您願意使用滑鼠並且名稱由您不知道如何輸入的可列印字元組成:從ls
.
答案2
指定文件的路徑。
cat ./~
答案3
貼上的更新顯示它是一些高位 ASCII 或 Unicode 字符,而不是簡單的波形符...您可以使用mc
或其他文件管理器嗎?把所有東西都搬過來怎麼樣別的離開該目錄,然後使用製表符補全?