錯誤重命名指令後檔案的位置

錯誤重命名指令後檔案的位置

這裡是新手...只是嘗試使用以下命令將名稱中有 2 個點的檔案名稱更改為單點

rename 's/.././' filename

該文件已消失,但我認為它並未被刪除,因為內存中仍有相同數量的空間。該文件會被傳送到哪裡?

答案1

現在調用該檔案.lename

(假設該文件filename之前被調用過,我猜您的“真實”文件將具有不同的名稱。但是無論如何調用該文件,前兩個字符已被替換為.。)

這是因為正規表示式中的點是特殊字元意義匹配任意字符。所以,..是任意兩個字元。因為rename僅替換第一個匹配項,除非您添加了全球的修飾符 ( g),給定檔案名稱的前兩個字元已被替換。

注意,這裡的“替換”s/regex/replacement/modifiers不是正規表示式,因此.表達式右側的s/.././可以按您的預期工作。


現在,你的文件在哪裡:

以a開頭的檔案.是隱藏檔案。因此,您不會通過運行看到它們ls。運行ls -a以顯示這些文件。

使用重新命名您的文件mv .lename filename


下次,轉義正規表示式特有的字元:

rename 's/\.\././' filename

此外,您可以rename -n ...在執行實際重命名之前進行試運行並檢查結果。那會向你展示這樣的東西:

rename(filename, .lename)

相關內容