當(dāng)文件名為亂碼的時(shí)候,無法通過鍵盤輸入文件名,所以在終端下就不能直接利用rm,mv等命令管理文件了。
當(dāng)文件名為亂碼的時(shí)候,無法通過鍵盤輸入文件名,所以在終端下就不能直接利用rm,mv等命令管理文件了。
但是每個(gè)文件都有一個(gè)i節(jié)點(diǎn)號(hào),可以通過i節(jié)點(diǎn)號(hào)來管理文件。首先,要取得文件的i節(jié)點(diǎn)號(hào)。這個(gè)可以通過ls命令的-i選項(xiàng)獲得得。
一、刪除
第一步:獲取文件的id號(hào)
第二步:執(zhí)行刪除
find . -inum 32983551 -exec rm {} \;
二、重命名
find . -inum 32983542 -exec mv {} test.php \;
當(dāng)文件名為亂碼的時(shí)候,無法通過鍵盤輸入文件名,所以在終端下就不能直接利用rm,mv等命令管理文件了。
但是每個(gè)文件都有一個(gè)i節(jié)點(diǎn)號(hào),可以通過i節(jié)點(diǎn)號(hào)來管理文件。首先,要取得文件的i節(jié)點(diǎn)號(hào)。這個(gè)可以通過ls命令的-i選項(xiàng)獲得得。
-bash-3.00$ ls -i
41697812 a 32983551 di 32983554 ethnet.c 32983543 hard_link
32983542 de.c 32983544 ethnet 32983541 ethnet.h 32983543 kstat
每個(gè)文件名前面的數(shù)字就是文件的i節(jié)點(diǎn)號(hào)。有了文件的i節(jié)點(diǎn)號(hào),我們就可以利用find命令的-inum選項(xiàng)配合
常用的文件管理命令進(jìn)行文件管理了。例如,如果要?jiǎng)h除di文件,命令如下:
-bash-3.00$ find . -inum 32983551 -exec rm {} \;
-bash-3.00$ ls
a de.c ethnet ethnet.c ethnet.h hard_link kstat
看di文件被刪除了。因?yàn)檫@個(gè)例子是在unix-center的機(jī)子上運(yùn)行的,暫時(shí)沒有文件名為亂碼的文件做為示例,
但是道理是一樣的,不影響我們的理解。
要重命名一個(gè)文件,命令也很簡(jiǎn)單,如下:
-bash-3.00$ ls -i
32983542 de.c 32983554 ethnet.c 32983543 hard_link 32983545 kstat.c
32983544 ethnet 32983541 ethnet.h 32983543 kstat 32983681 sys_link
-bash-3.00$ find . -inum 32983542 -exec mv {} di.c \;
-bash-3.00$ ls -i
32983542 di.c 32983554 ethnet.c 32983543 hard_link 32983545 kstat.c
32983544 ethnet 32983541 ethnet.h 32983543 kstat 32983681 sys_link
看看,de.c文件被重命名為di.c了。特別要提一下的是,在find命令中的“{}”表示find命令找到的文件,在
-exec選項(xiàng)執(zhí)行mv命令的時(shí)候,會(huì)利用按i節(jié)點(diǎn)號(hào)找到的文件名替換掉“{}”