CentOS 6.* 使用lrzsz的rz指令後删除亂碼的檔案
使用rz上傳檔案失敗或者不小心輸入指令會導緻終端顯示亂碼和檔案名發生亂碼。因為用rm 删除特殊字元基本無效,故找到了下面兩種簡單易用的方法.
問題描述:
例子:
[root@jonasVMC ~]$ ls
?? ??b??g?????E#?藠?T
?7?%??S?^d??X???b戮 falcon-agent-5.1.0.tar.gz
解決方案:
方案1.rm删除指令
rm ./* #删除目前目錄下的所有檔案, 千萬不要寫成 rm -rf ./*, 同時確定rm指令沒有被alais成rm -rf
因為rm指令在删除檔案前都會詢問,故我們可以利用rm詢問機制删掉亂碼檔案。
[示例]:
确認要删除的亂碼檔案輸入y,其他回複n。期間可以用ctrl+c随時結束.
[root@jonasVMC ~]$ rm ./*
rm: remove regular file `./\245\373b\253\272g\224\257\374\346\370E#\245藠\277T ko\376\335\322\332k%\325m~P\347JbS\364]\245\345b#\250\311[\203m\376\320y\372\375LZn.\3227'? y
rm: remove regular file `./falcon-agent-5.1.0.tar.gz'? n
rm: remove regular empty file `./M\277m\233\260+\263BO'? y
rm: remove regular file `./yc_linkd-nmob_2.6_ex_CTL-64.tar.gz'? n
方案2.找到索引節點(inode)進行删除
[示例]:
通過ls -li 指令檢視目前目錄下的檔案資訊(-i 表示顯示Inode節點号);
注意删除語句的文法格式.
[root@jonasVMC ~:~]$ ls -li
total 11420
6176785 -rw-rw-r-- 1 root root 0 Oct 13 17:26 ?7?%??S?^d??X???b戮
6176782 -rw-r--r-- 1 root root 3203523 Aug 20 10:02 falcon-agent-5.1.0.tar.gz
[root@jonasVMC ~]$ find ./ -inum 6176785 -exec rm -rf {} \;
[補充]: 正确使用lrzsz的方法:
1.安裝
[root@jonasVMC ~]# yum search lrzsz #搜尋線上源是否有lrzsz軟體包
lrzsz.x86_64 : The lrz and lsz modem communications programs
[root@jonasVMC ~]# yum install -y lrzsz.x86_64 #安裝lrzsz
2.使用
*sz指令是利用ZModem協定來從Linux伺服器傳送檔案到本地,一次可以傳送一個或多個檔案.
常用參數:
-a 以文本方式傳輸(ascii)。
-b 以二進制方式傳輸(binary)。
-e 對控制字元轉義(escape),這可以保證檔案傳輸正确。
如果能夠确定所傳輸的檔案是文本格式的,使用 sz -a 檔案
如果是二進制檔案,使用 sz -be 檔案
*rz指令
常用參數:
-b 以二進制方式,預設為文本方式.
(Binary (tell it like it is) file transfer override.)
-e 對所有控制字元轉義。(Force sender to escape all control characters;
normally XON, XOFF, DLE, [email protected], and Ctrl-X are escaped.)
如果要保證上傳的檔案内容在伺服器端儲存之後與原始檔案一緻,最好同時使用這兩個參數選項,
如下所示方式使用:
rz -be #然後在打開的檔案浏覽器選擇要上傳的檔案即可
[補充]: 關于終端可能存在的顯示亂碼問題, 需要修改字元集
1.修改字元集為"en_US.UTF-8":
vi /etc/sysconfig/i18n
打開檔案後修改内容為:
LANG="en_US.UTF-8"
#然後儲存退出
啟動該檔案使其生效:
檢視字元集是否生效:
[root@jonasVMC ~]# echo $LANG
en_US.UTF-8
#成功了!!!
2.如果你想再使用中文字元集, 可以重複以上的步驟1:
修改為zh_CN.UTF-8即可.