Linux

重命名命令錯誤,文件不再顯示在 Windows 網路驅動器中

  • November 22, 2013

我用重命名命令犯了一個錯誤

find . -type f -exec rename 's/[^A-Za-z0-9._]//g' {} +

之後,文件不再像以前那樣位於其文件夾下,而且每個文件都有 . 在他們面前。現在我的客戶看不到文件了。一旦我刪除 . 然後他們可以看到文件。

我怎樣才能刪除 . 從文件中。像這樣:

.finacialyear2008half.doc

finacialyear2008half.doc

請幫我!我需要快速修復。

find . -type f -exec rename 's/\.//' '{}' \;

想想 rename 的 -n 參數:它只顯示刪除它後它會做什麼!

假設您使用的是 bash,您可以遍歷文件,替換目前文件夾中所有文件的文件名中第一次出現的/.with 。/

for filename in $(find . -maxdepth 1 -type f)
do
 mv -v $filename ${filename/\/.//}
done

這假設您不需要遞歸地重命名文件,並且只在目前目錄 ( -maxdepth 1) 中工作。

免責聲明:在對數據執行任何操作之前,請始終備份您的文件或至少嘗試使用一堆測試文件。

引用自:https://serverfault.com/questions/556700