這裡是新手...只是嘗試使用以下命令將名稱中有 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)