顯示具有 UNIX研究 標籤的文章。 顯示所有文章
顯示具有 UNIX研究 標籤的文章。 顯示所有文章

2015年6月25日 星期四

透過 inode number 搬移、複製、刪除、編輯 Linux 亂碼檔案

透過 inode number 搬移、複製、刪除、編輯 Linux unix 中的亂碼檔案

在 unix 系統中取得了檔案的inode 編號之後,可以透過 find 指令搭配 -inum 及 -exec 來完成各種原本的檔案存取編輯、刪除、移動、複製的功能,非常方便。

Step 1.
 先切換到該目錄並透過 ls -i 參數取得 inode number
ls -i *


Step 2.
透過 find 的 -inum 及 -exec 參數來操作檔案如 cat亂碼檔
find . -inum 1038003 -exec cat {} \;

也可以 vi亂碼檔
find . -inum 1038003 -exec vi {} \;





也可以透過 inode num 搭配 rm 刪除亂碼檔
find . -inum 1038003 -exec rm {} \;


也可以透過 inode num 來搬移檔案
find . -inum 1038003 -exec mv {} BK \;


也可以透過 inode num 來複製檔案
find . -inum 1038000 -exec cp {} BK2 \;


2015年6月24日 星期三

putty 顯示中文設定教學.putty linux unix 顯示中文教學

putty 顯示中文設定教學.putty linux unix 顯示中文教學

最近需要在 unix 上面直接能透過 cat指令或是 vi 指令來查看檔案內的中文內容,於是和朋友討論之後原來有二塊設定要作修正才能在putty 上面看繁體中文字(UTF-8)。



設定完之後可以正常的在 putty telnet 到 linux or unix 上正常看到中文檔案名稱,也可以正常的顯示檔案內的中文字,不過其實有中文檔名在unix 很麻煩。


光是要 cat 或是 rm 都沒有辦法正確的輸入中文檔案名稱,就算用將中文檔名用複製貼上的方式也會在貼上後變成文字內碼。



Step 1.
首先必需要針對某個要連結的 connection 的 putty 設定值作異動:
這個設定很簡單,直接打開putty 之後選擇
Change Settings -> Translation -> Character set translation on received data -> 選擇 UTF-8 即可

 





 

Step 2.
使用 putty 登入遠端 unix 或 linux 主機後需要作一些設定

你如果有權限可以修改 /etc/profile 檔案就加上下面三行
#vi /etc/profile to show chinese character
LC_CTYPE=en_US.ISO8859-1; export LC_CTYPE
LC_CTYPE=zh_TW.UTF-8; export LC_ALL
LANG=zh_TW.UTF-8; export LANG

若是你不能改 profile 那就直接在 comman line 依序執行下列六個指領即可
LC_CTYPE=en_US.ISO8859-1
export LC_CTYPE

LC_CTYPE=zh_TW.UTF-8
export LC_ALL

LANG=zh_TW.UTF-8
export LANG


LINUX 亂碼檔案名稱如何砍掉? 用 inode Number 來砍吧

LINUX 亂碼檔案名稱如何砍掉? 用 inode Number 來砍吧

 


前一陣子有個小困擾就是有時後在 UNIX LIKE的作業系統上面看到有些透過FTP亂體上傳的檔案名稱竟然是亂碼,這可能是編碼的問題,不過這種亂碼的檔案有些竟然很難砍,因為在UNIX 或是LINUX 要砍檔案的時後必需要用 rm 指令接上要砍的檔案名稱,不過那個檔案名稱是亂碼,有些亂碼亂的很徹底就算是用複製貼上的方式也沒有辦法完整的複製那個亂碼檔案的檔名,沒有辦法打出檔名更別想要把檔案砍掉。






 


想砍檔不能用檔案名稱的時後要怎麼辦? 朋友教了一個很不錯的辦法就是用ls -i的方式查看檔案的 inode number ,然後如果你的unix like系統的find指令支援 -delete 這個參數,就可以直接用  find . -inum (inode number ) -delete 的方式來砍掉某個指定的檔案。

 





 



若是你的UNIX LIKE系統的 find 指令不支援參數 -delete 的話那就必需要用 -exec rm -f {} \;的方式來砍檔案,例如下列指令就可以順利砍檔喔。


find . -inum 12345 -exec rm -f {} \;