rm 命令

rm 命令是 Linux 中用来删除文件的命令,一般如下

rm /home/zhoux/test.txt
#注意写好文件的路径,暂时还是写绝对路径好了,.代表当前目录也别忘了

Warning

rm 执行后不会有返回提示,没有回收站 在完全熟悉文件路径和通配符 wildcard 前,慎重操作

实际操作

rm 的使用很简单,有以下一些选项

-i

-i 意为 interactive,删除前给出信息

zhoux@westnorth:~$ rm -i test.txt
rm: remove regular file 'test.txt'? no
#询问我是否删除,回答no即不删除

Warning

为最大限度避免误删,初学阶段请养成加上 -i 的习惯

-f

-f 意为 force,不询问并强制删除

感觉没什么用,也最好别用

-r

-r 意为 recursive,递归(循环,遍历)的删除目录,用于文件夹的删除,即一删到底

zhoux@westnorth:~$ ls
linux_practice  projects  snap  test.txt  to_be_remove  ubuntu-wsl2-systemd-script
zhoux@westnorth:~$ rm -r to_be_remove
#删除to_be_remove目录
zhoux@westnorth:~$ ls
linux_practice  projects  snap  test.txt  ubuntu-wsl2-systemd-script

rm 与通配符

通配符 wildcard 可以与 rm 联用,感觉挺危险

以下是一个例子

zhoux@westnorth:~/linux_practice/files$ ls -l
total 0
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:32 2021.matrix
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:32 2022.matrix
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:32 scRNA.script.R
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:32 script.R
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:33 script.r
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:33 train1.md
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:33 train2.md
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:31 xb.R1.fastq
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:31 xb.R2.fastq
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:31 xb.scRNA.fastq
zhoux@westnorth:~/linux_practice/files$ rm *md
#使用*通配符删除所有以md结尾的文件
zhoux@westnorth:~/linux_practice/files$ ls -l
total 0
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:32 2021.matrix
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:32 2022.matrix
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:32 scRNA.script.R
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:32 script.R
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:33 script.r
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:31 xb.R1.fastq
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:31 xb.R2.fastq
-rw-r--r-- 1 zhoux zhoux 0 Dec  4 08:31 xb.scRNA.fastq
#train1,train2两个.md文件已经被删除

值得注意的, rm -r files/rm files/*

  • rm -r files/ 即递归删除,将先删掉目录里的所有文件,*再删掉目录自己
  • rm files/* 即使用通配符匹配所有字符,将只删除目录里的文件
  • rm -r files/ = rm files/* + rmdir files/*
    • rmdir 只能删掉一个空的文件夹