像 DokuWiki 預設會將頁面文件檔(.txt)檔名的 UTF-8 字元,用 URL 格式編碼,也就是說非 ASCII 字元都會編為「%30%AB……」這樣的天書。如果在 DokuWiki 的管理介面中想把檔名編碼格式改為 utf8
還不行,會導致 DokuWiki 抓不到現有的文件檔,會全部亂套。
所以,如果想讓 DokuWiki 改用 UTF-8 檔名的話,還得先把現有文件檔的 URL encoding 全部解碼才行。但哪裡有批次解碼的工具?
for d in ./* ; do (deurlname $d -v); done
是可以對「單一資料夾」每個項目都做的。接下來我需要的是能自動「進入每個資料夾」的步驟~
find some/dir -type f -execdir somecommand {} \;
{}
的意思\
的意思{}
和 \
都省不了 ∴執行了:$ find . -type f -execdir sh -c 'for d in ./*; do (deurlname $d -v); done' {} \;
大致上似乎是可以的(只要解碼後的名稱不要和已有的項目重複即可)
find . -d -name "*%*" -exec deurlname {} -v \;
就搞定了!太神奇了! 感謝 神
-d
是先進下層執行,免得上層解碼後下層失聯