2018-01-25|2018-01-25 Linux 删除文件名乱码的文件

原因 今天,Ubuntu 的串口与虚拟机 Windows 的串口冲突了,我在 minicom 中随意输入(变成一堆乱码),结果在开发板的 Linux 系统中生成了一个文件,文件名类似 [???@@?D@8] 这样的。本来就是乱码,想要直接 rm 掉又不行,开发板上又没有桌面,看来没那么简单了。
解决办法

  1. ls -l 列出所有文件的详细信息:
root@ ~# ls -l -rw-r--r--1 rootroot0 Jan 23 11:56 ???@@?D@8 drwxr-xr-x1 rootroot0 Jan 23 16:02 ./ drwxr-xr-x1 rootroot0 Jan 23 16:21 ../ -rwxr-xr-x1 rootroot109880 Jan 23 09:49 test

  1. head -n 1筛选出第一行乱码(如果乱码不在第一行,可以利用 grep -v 去掉不想删除的,如:ls -l | grep -v test 可以过滤掉 test 文件;当然还可以利用 head + tail 这两个命令去掉前面和后面的):
root@ ~# ls -l | head -n 1 -rw-r--r--1 rootroot0 Jan 23 11:56 ???@@?D@8

  1. 利用 awk 筛选出最后的文件名:
root@ ~# ls -l | head -n 1 | awk ‘{printf $NF}’ ???@@?D@8

  1. 最后利用 rm 直接删除指定文件名文件:
root@ ~# rm `ls -l | head -n 1 | awk ‘{printf $NF}’`

【2018-01-25|2018-01-25 Linux 删除文件名乱码的文件】× 这就OK啦!

    推荐阅读