看板 Linux 關於我們 聯絡資訊
有時由一些 zip 檔中解壓會遇到檔名非 UTF-8 而出現亂碼檔名的現象。 麻煩的是因為檔名亂碼,檔案管理器可能根本無法存取此檔,點選直接顯示無此檔案, 更不要說改名、刪除等等操作。 難道我們只能讓這檔案放在那裡佔空間嗎? 這裡提供一個通用方法(剛爬文看到 zsh tab*2 後可以用光標選檔,不知能否處理) 《利用 inode number》 Linux 檔案系統是用 inode 做管理的,所以我們改對 inode 操作就行了。 列出檔案 inode : $ ls -i 你也可以加上其他參數, 如 -l , -lS (S依大小排序), 方便在眾多亂碼檔名中確定檔案。 修改檔名:(我只知道 find 可以對 inode 操作) $ find -maxdepth 1 -inum "0123455" -exec mv "{}" "new_name" \; -maxdepth 1 限定搜索當前目錄 -inum 搜索 inode number -exec 執行指令,{} 代換成找到檔名,記得以 \; 結束。 (如果你要直接刪除就改用 rm {} 或 -delete ) 如果你像我昨天要改 40 個檔案(有更好辦法嗎? XD) 你可以弄一個 mv_by_inode.sh ################ #!/bin/bash if [ -n "$1" ] && [ -n "$2" ] ; then find -maxdepth 1 -inum "$1" -exec mv "{}" "$2" \; else echo Usage: `basename $0` inode_number new_name echo fi -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.188.87 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1508429462.A.09D.html
ddoomm: good! 10/20 11:21
phoenixcx: 推 10/20 11:53
lantw44: 如果知道檔名編碼的話,可以直接用 convmv 改檔名 10/20 15:19
lantw44: 例如 convmv -f Big5 -t UTF-8 -r 就可以處理整個資料夾 10/20 15:32
holishing: 推分享 10/20 21:08
hijkxyzuw: 我都用 * 10/20 22:21
Vdragon: 實用 10/21 00:17
sDwlr: 推推 我最近用Android和Linux都有這問題 10/21 10:58
losepacific: 感恩。 10/22 23:07
※ 編輯: sppmg (36.231.243.133), 10/24/2017 22:10:22
maple52046: 推分享 10/28 20:17