目录
在上两篇文章中分别介绍了Linux目录和文件的常用操作命令,本篇教程详细介绍目录和文件都可以通用的Linux命令;
相关学习文章
Linux目录和文件都可以操作的命令
在linux系统中目录和文件都可以操作的命令,最常用的有rm、cp、mv,本教程以CentOS 7系统环境为例,并结合应用场景为大家清晰明了的介绍这三个命令的使用方法和实际用途,其他linux发行版也可参考此教程!
一、rm命令
rm,英文原意是remove file or directories,命令所在路径/bin/rm,是一个强大的删除命令,不仅可以删除文件,也可以删除目录,是一个所有用户都有权限操作的命令!
【语法格式】 rm [选项] 文件或目录
功能描述(仅介绍最常用的选项,如需查看帮助文档可输入rm --help或man rm)
选项(注意大小写) | 作用 |
-f | 强制删除 |
-i | 交互删除,在删除之前会询问用户 |
-r | 递归删除,加r可以删除目录 |
应用场景
【1-1】首先,创建几个目录和文件用于实验;
mkdir -p /a/a01 /b/b01 /c/c01 /d/d01
在a目录下创建多一个123文件,输入touch /a/123,使用tree命令查看这些目录和文件;
[root@localhost a]# touch /a/123 [root@localhost a]# tree /a /b /c /d /a ├── a01 ├── 123 /b ├── b01 /c └── c01 /d └── d01 |
现在开始第一个实验操作:使用rm删除/a/目录下的123;
rm /a/123
执行结果
[root@localhost ~]# rm /a/123 rm:是否删除普通空文件 "/a/123"? |
这时系统询问是否删除文件,因为rm是默认交互删除的,rm和rm -i的效果是一样的,我们输入y按下回车键即可删除文件;
rm:是否删除普通空文件 "/a/123"?y [root@localhost /]# |
tree /a /b /c /d查看一下,123文件已被删除;
[root@localhost a]# tree /a /b /c /d /a ├── a01 /b ├── b01 /c └── c01 /d └── d01 |
【1-2】接下来我们删除一下b目录
rm /b/
[root@localhost ~]# rm /b/ rm: 无法删除"/b/": 是一个目录 |
提示无法删除,因为rm是不能删除目录的,需要加个-r选项才能删除目录,现在加个-r选项试试;
[root@localhost ~]# rm -r /b/ rm:是否进入目录"/b/"? y rm:是否删除普通空文件 "/b/DD"?y rm:是否删除符号链接 "/b/EE"?y rm:是否删除目录 "/b/b01"?y rm:是否删除目录 "/b/"?y |
现在目录已经删除,但是删除过程很麻烦,每个文件和目录都需要确认,那有没有更简便的方法呢,当然有,加个-f选项即可,我们现在尝试一下把c目录删除;
[root@localhost ~]# rm -rf /c/ [root@localhost ~]# |
【1-3】c目录也删除了,现在删除d目录下的所有文件,注意:是删除d目录的所有文件,不是d目录本身;
rm -rf /d/*
[root@localhost ~]# rm -rf /d/* [root@localhost ~]# |
注意事项
□如需删除目录下的所有文件可以使用通配符*标识,如需删除指定文件,使用绝对路径指定文件名即可,例如删除d目录的d01文件可以写成:rm -rf /d/d01
□rm是一个危险的命令,删除的数据是无法恢复的,如果是生产环境下使用rm命令一定要慎重,检查清楚自己的语法是否正确再使用,生产环境下使用rm命令建议先安装extundelete工具,使用前安装这个工具,如果误删除还可以找回数据
□关于rm这个命令的使用,一般无论删除目录还是文件,习惯的写法都是rm -rf 目标路径,-i选项是默认的可以不写;
二、cp命令
cp,英文原意是copy file and directories,命令所在路径/bin/cp,是一个所有用户都有权限操作的命令!主要功能是复制目录和文件;
【语法格式】
cp [选项] 源文件 目标文件
功能描述(仅介绍最常用的选项,如需查看帮助文档可输入cp --help)
选项(注意大小写) | 作用 |
-a | -dpr选项的集合 |
-d | 如果源文件为软链接,则复制出的文件也为软链接,此选项对硬链接无效 |
-i | 如果目标文件存在,询问是否需要覆盖 |
-p | 复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间) |
-r | 递归复制,用于复制目录 |
应用场景
【2-1】将/var/log/目录下的boot.log日志文件复制到根下的/111/目录
cp -a /var/log/boot.log /111/
执行结果
[root@localhost /]# cp -a /var/log/boot.log /111/ [root@localhost /]# ls /111/ boot.log |
注意事项
□使用cp复制文件时可以指定目标文件名,不指定复制后默认源文件名;
□注意:如果是将文件复制到指定目录,这个目录必须存在,例如上面的111目录是复制前新建的目录;
【2-2】将/111/目录复制到/var/log/目录下并改名aaa;
cp -a /111/ /var/log/aaa/
执行结果
再次复制/111/目录到/var/log/目录下并改名aaa会提示是否需要覆盖,输入y即可;
[root@localhost /]# cp -a /111/ /var/log/aaa/ cp:是否覆盖"/var/log/aaa/111/boot.log"? y [root@localhost /]# |
注意事项
□cp -a相当于cp -d、cp -p、cp -r这三个选项合起来的功能,而-i选项的功能是默认的,写不写都行;
□有关cp命令更多的选项可以通过man cp或info cp命令获取更多帮助;
三、mv命令
剪切命令,英文原意是move(rename)file,命令所在路径/bin/mv,是一个所有用户都有权限操作的命令!主要功能移动文件或改名;
【语法格式】
mv [选项] 源文件 目标文件
功能描述(仅介绍最常用的选项,如需查看帮助文档可输入mv --help)
选项(注意大小写) | 作用 |
-f | 强制覆盖,如果目标文件存在,则不询问直接覆盖 |
-i | 交互移动,如果目标文件存在,则询问用户是否需要覆盖(默认选项) |
-v | 显示详细信息 |
应用场景
将/111/目录下的boot.log文件剪切到/var/log/目录改名为boot_test.log文件,并显示详细信息;
mv -v /111/boot.log /var/log/boot_test.log
执行结果
注意事项
□-v选项显示的详细信息是指操作记录,在同一个目录使用mv一般是改名,不同目录则是剪切;