linux每日命令(6):rm命令

rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

一. 命令格式:

rm [选项] 文件 

二. 命令功能:

删除一个目录中的一个或多个文件或目录,如果没有使用- r参数,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

三. 命令参数选项

参数 描述
-f --force,忽略不存在的文件,从不给出提示。
-i --interactive,进行交互式删除
-r (-R) --recursive , 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v --verbose, 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出

四. 命令实例

1. 删除文件

命令:

rm 文件名

输出:

[email protected]:~/test2/test5$ ls
file1  scf  test5-1
[email protected]:~/test2/test5$ rm file1
rm:是否删除普通空文件 'file1'? y
[email protected]:~/test2/test5$ ls
scf  test5-1

说明:

输入rm file1命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。
如果没有进行询问,建议加上,毕竟删除操作需谨慎!

方法:

vi ~/.bashrc

然后再里面加入

alias rm='rm -i'

意思是 rm命令 实际使用的是 rm -i 交互模式,需要进行确认
注意,此处 rm 和 = 之间不能有空格,否则会有找不到rm命令的提示,

然后在终端执行这条命令,使得刚才的修改即刻生效:

source ~/.bashrc

2. 强行删除file,系统不进行确认提示。

命令:

rm -f 文件名

输出:

[email protected]:~/test2/test5$ ls
file2  scf  test5-1
[email protected]:~/test2/test5$ rm -f file2
[email protected]:~/test2/test5$ ls
scf  test5-1

3. 删除当前目录下的所有.log结尾的文件,删除前逐一询问确认

命令:

rm -i *.log

输出:

[email protected]:~/test2/test5/test5-1$ ls
log1.log  log2.log  log3.log
[email protected]:~/test2/test5/test5-1$ rm -i *.log
rm:是否删除普通空文件 'log1.log'? y
rm:是否删除普通空文件 'log2.log'? y
rm:是否删除普通空文件 'log3.log'? y
[email protected]:~/test2/test5/test5-1$ ls
[email protected]:~/test2/test5/test5-1$ 

说明:

touch 是创建文件的命令

mkdir 是创建目录的命令

touch 1.log 2.log 3.log

如果一次性创建多个连续的文件/目录可以使用{1..3}

例如:
一次创建3个.log文件

touch {1..3}.log

4. 删除test5目录及其子目录里的所有的内容

命令:

rm -r test5

输出:

[email protected]:~/test2$ ls
test22  test3  test4  test5
[email protected]:~/test2$ tree test5
test5
├── log.log
├── scf
│?? ├── bin
│?? ├── doc
│?? │?? ├── info
│?? │?? └── product
│?? ├── lib
│?? ├── logs
│?? │?? ├── info
│?? │?? └── product
│?? └── service
│??     └── deploy
│??         ├── info
│??         └── product
└── test5-1
    └── log4.log

14 directories, 2 files
[email protected]:~/test2$ ls
test22  test3  test4  test5
[email protected]:~/test2$ rm -r test5
rm:是否进入目录'test5'? y
rm:是否进入目录'test5/scf'? y
rm:是否进入目录'test5/scf/logs'? y
rm:是否删除目录 'test5/scf/logs/info'? y
rm:是否删除目录 'test5/scf/logs/product'? y
rm:是否删除目录 'test5/scf/logs'? y
rm:是否进入目录'test5/scf/service'? y
rm:是否进入目录'test5/scf/service/deploy'? y
rm:是否删除目录 'test5/scf/service/deploy/info'? y
rm:是否删除目录 'test5/scf/service/deploy/product'? y
rm:是否删除目录 'test5/scf/service/deploy'? y
rm:是否删除目录 'test5/scf/service'? y
rm:是否删除目录 'test5/scf/bin'? y
rm:是否进入目录'test5/scf/doc'? y
rm:是否删除目录 'test5/scf/doc/info'? y
rm:是否删除目录 'test5/scf/doc/product'? y
rm:是否删除目录 'test5/scf/doc'? y
rm:是否删除目录 'test5/scf/lib'? y
rm:是否删除目录 'test5/scf'? y
rm:是否进入目录'test5/test5-1'? y
rm:是否删除普通空文件 'test5/test5-1/log4.log'? y
rm:是否删除目录 'test5/test5-1'? y
rm:是否删除普通空文件 'test5/log.log'? y
rm:是否删除目录 'test5'? y
[email protected]:~/test2$ ls
test22  test3  test4
[email protected]:~/test2$

5. 删除test5目录及其子目录里的所有的内容,且不用进行询问确认

命令:

rm -rf test5

6. 创建、删除以-开头的文件

命令:

在当前目录下创建文件名为-a和-b的文件

方法一: touch ./-a
方法二: touch -- -b

删除当前目录下文件名为-a和-b 的文件

方法一: rm -- -a
方法二: rm ./-b

输出:

[email protected]:~/test2/test4$ ls
[email protected]:~/test2/test4$ touch -a
touch: 缺少了文件操作数
Try 'touch --help' for more information.
[email protected]:~/test2/test4$ touch ./-a
[email protected]:~/test2/test4$ ls
-a
[email protected]:~/test2/test4$ touch -- -b
[email protected]:~/test2/test4$ ls
-a  -b
[email protected]:~/test2/test4$ rm -a
rm: 不适用的选项 -- a
Try 'rm ./-a' to remove the file '-a'.
Try 'rm --help' for more information.
[email protected]:~/test2/test4$ rm -- -a
rm:是否删除普通空文件 '-a'? y
[email protected]:~/test2/test4$ ls
-b
[email protected]:~/test2/test4$ rm ./-b
rm:是否删除普通空文件 './-b'? y
[email protected]:~/test2/test4$ ls
[email protected]:~/test2/test4$ 

说明:

档名最好不要使用 "-" 号开头, 因为 "-" 后面接的是选项,因此,单纯的使用『 rm -a 』系统的命令就会误判。所以,只能用避过首位字节是 "-" 的方法啦! 就是加上本目录『 ./ 』即可!
如果 man rm 查看使用方法的话,其实还有一种方法,那就是『 rm -- -f 』(另外一种方法而已)。

7. 自定义回收站功能

命令:

myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "[email protected]" $D && echo "moved to $D ok"; }

说明:


myrm()
{
D=/tmp/$(date +%Y%m%d%H%M%S);
#在/tmp文件夹中创建名为“当前日期”的文件;
#其中“date+%Y%m%d%H%M%S”是规定了日期的输出格式;
mkdir -p $D;
#以变量D中的路径创建文件夹。
mv "[email protected]" $D && echo "moved to $D ok";
#将所要删除的文件移入变量D中的文件夹内,移入成功后,输出移动成功。
}

alias rm='myrm'
#命令别名定义方式,此定义成功后,无论输入rm或myrm系统都会做出相同操作。

输出:

[email protected]:/tmp$ myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D;  mv "[email protected]" $D && echo "moved to $D ok"; }

[email protected]:/tmp$ alias rm='myrm'

[email protected]:/tmp$ touch {1..4}.log

[email protected]:/tmp$ ls
1.log  2.log  3.log 4.log
[email protected]:/tmp$ rm [1234].log
moved to /tmp/20181026111028 ok
[email protected]:/tmp$ ls
20181026111028
[email protected]:/tmp$  cd 20181026111028/
[email protected]:/tmp/20181026111028$ ls
1.log  2.log  3.log  4.log

说明:

上面的操作过程模拟了回收站的效果,即删除文件的时候只是把文件放到一个临时目录中,这样在需要的时候还可以恢复过来。

由于我们当前已将rm绑定为myrm,所以我们无法执行删除操作

临时设置rm命令别名为myrm

alias rm='myrm'

此时若想删除回收站里的文件,
由于是临时的,所以换一个命令行窗口后,绑定就会失效
即换一个命令行窗口执行rm -r 命令删除即可

如果不想换命令行窗口,可以用sudo rm -rf 目录名 删除回收站的文件

或者解除临时绑定

unalias rm

输出:

[email protected]:/tmp/20181026111444$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias rm='myrm'
[email protected]:/tmp/20181026111444$ unalias rm
[email protected]:/tmp/20181026111444$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

原文地址:https://www.cnblogs.com/huchong/p/9855422.html

时间: 2024-11-03 05:50:14

linux每日命令(6):rm命令的相关文章

每天学习Linux(5)---rm 命令

昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑

Linux中快捷键的使用,who命令,rm命令,ps命令,cd命令,kill命令,find命令,grep命令,tar命令(gz、tar、bz2),相关命令

1.进入Ubuntu之后打开终端窗口的快捷键是: ctrl + alt+t:通过这个命令可以打开终端.截图是: 2.关闭一个终端窗口的方式是: Alt +F4,在Ubuntu下还可以是exit 3.对于terminal中的符号,其中的$标识,普通用户时显示的是$,超级管理员对应的符号是:# 截图如下: 4.whoami:查看我是谁的命令,截图如下: 通过whoami或者who命令查看当前用户 5.清屏的命令是: clear,快捷键是:ctrl + l 6.查看当前所在位置的命令是:pwd 7.c

linux常用命令:rm 命令

昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑

Linux命令篇之mkdir命令,rmdir命令和rm命令

在 Linux 下用 mkdir 命令来创建目录和子目录 了解了用 ls 命令在目录中列出条目后,现在我们要学习在 Linux 系统下创建目录.在 Linux 下,我们可以使用 mkdir 命令.Mkdir 是"make directory" 的缩写词. mkdir 是什么呢 Mkdir 是一个用来在 Linux 系统下创建目录的命令.此命令属于内建命令. 运行 mkdir 命令 你可以在你的控制台直接键入 mkdir 来使用它. $ mkdir 默认情况下,不带任何参数运行 mkdi

每天学习Linux(6)---rm 命令

今天学习一下linux中命令: rmdir命令.rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写权限. 1.命令格式: rmdir [选项]... 目录... 2.命令功能: rm命令的功能为删除一个目录中的一个或多个文件或目录,删除某目录时也必须具有对父目录的写权限. 3.命令参数: - p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删

Linux初学习之 rm 命令

现在我们来仔细的学习一下linux的rm命令,这个命令顾名思义(我猜的,嘻嘻,是remove) 命令格式: rm [OPTION]... FILE... Remove (unlink) the FILE(s). 就是删除文件(们),至于unlink是什么以后再去讨论了 OPTION: -f,  --force           ignore nonexistent files, never prompt 忽略不存在的文件,不提醒-i,  --interactive     prompt bef

Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

一.查看jdk安装目录 [[email protected] ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [[email protected] ~]# which java /usr/bin/java #查看JDK安装路径 [[email protected] ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [[email protected] ~]# echo $P

linux文件操作之rm命令

一.rm参数常用的参数比较少,还是先来看看各个参数意思. -i       :表示删除之前都会询问是否确认删除.当你递归删除一个目录时你会发现很麻烦, 所以平时用得比较少. -f       :默认情况rm命令通过别名的方式为rm–i即使用rm命令时会提示确认删除, 使用-f就可以强制删除,而无需再次确认. -r      :当你使用rm删除一个目录会发现"rm:cannot remove `test': Is a directory",这是因为 rm命令不能直接删除目录,需要通过-r

linux常用命令(4)rm命令

rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑.1 命令格式:rm [选项] 文件2 命令功能:删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录.如果使用 rm 来删除文件,通常仍可以将该文件恢复原状.-f,  --force 忽略不存在的文件,从不给出提示-i,  --interacti

linux明日命令(6):rm命令

阅读目录(Content) 一. 命令格式: 二. 命令功能: 三. 命令参数选项 四. 命令实例 1. 删除文件 2. 强行删除file,系统不进行确认提示. 3. 删除当前目录下的所有.log结尾的文件,删除前逐一询问确认 4. 删除test5目录及其子目录里的所有的内容 5. 删除test5目录及其子目录里的所有的内容,且不用进行询问确认 6. 创建.删除以-开头的文件 7. 自定义回收站功能 rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的