原因
今天,Ubuntu 的串口與虛擬機(jī) Windows 的串口沖突了,我在 minicom 中隨意輸入(變成一堆亂碼),結(jié)果在開發(fā)板的 Linux 系統(tǒng)中生成了一個(gè)文件,文件名類似 [???@@?D@8] 這樣的。本來就是亂碼,想要直接 rm 掉又不行,開發(fā)板上又沒有桌面,看來沒那么簡單了。
解決辦法
-
ls -l列出所有文件的詳細(xì)信息:
root@ ~# ls -l
-rw-r--r-- 1 root root 0 Jan 23 11:56 ???@@?D@8
drwxr-xr-x 1 root root 0 Jan 23 16:02 ./
drwxr-xr-x 1 root root 0 Jan 23 16:21 ../
-rwxr-xr-x 1 root root 109880 Jan 23 09:49 test
-
head -n 1篩選出第一行亂碼(如果亂碼不在第一行,可以利用grep -v去掉不想刪除的,如:ls -l | grep -v test可以過濾掉 test 文件;當(dāng)然還可以利用 head + tail 這兩個(gè)命令去掉前面和后面的):
root@ ~# ls -l | head -n 1
-rw-r--r-- 1 root root 0 Jan 23 11:56 ???@@?D@8
- 利用 awk 篩選出最后的文件名:
root@ ~# ls -l | head -n 1 | awk ‘{printf $NF}’
???@@?D@8
- 最后利用 rm 直接刪除指定文件名文件:
root@ ~# rm `ls -l | head -n 1 | awk ‘{printf $NF}’`
× 這就OK啦!