Linux文件系统和管理-2文件操作命令(下)
移动和重命名文件
mv 命令可以实现文件或目录的移动和改名 剪切的效果
同一分区移动数据,速度很快:数据位置没有变化
不同分区移动数据,速度相对慢:数据位置发生了变化
格式
和cp基本一样
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项
- -i 交互式
- -f 强制
- -b 目标存在,覆盖前先备份
批量修改文件名
利用rename 可以批量修改文件名
rename [options] <expression> <replacement> <file>...
#为所有的conf文件加上.bak后缀:
rename 'conf' 'conf.bak' f*
#去掉所有的bak后缀:
rename '.bak' '' *.bak
删除文件
使用 rm 命令可以删除文件
rm删除的是磁盘文件
rm很危险,慎重起见,将rm别命定义为mv
alias rm='DIR=/data/backup`date +%F%T`;mkdir $DIR;mv -t $DIR'
格式
rm [OPTION]... FILE...
###常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
直接删根,从删库到跑路
rm -rf /*
rm -rf * .[^.]* #递归删所有的 * 可见文件 .[^.]*隐藏文件
rm -rf --no-preserve-root / 可以删根
执行rm -rf /*
228 2020-06-18 16:55:42 rm -rf /*
229 2020-06-18 16:57:53 history
[root@C8-1 ~]# rm -rf /
-bash: /usr/bin/rm: No such file or directory
[root@C8-1 ~]# ll /
-bash: /usr/bin/ls: No such file or directory
特殊删除
#将名为 “/data/-f” 的文件删除
rm -f -f 此方式错误
rm -- -f
rm ./-f
rm /data/-f
安全销毁数据
rm虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安全删除文件
shred格式
shred [OPTION]... FILE...
常见选项:
- -z 最后一次覆盖添加0,以隐藏覆盖操作
- -v 能够显示操作进度
- -u 覆盖后截断并删除文件
- -n # 指定覆盖文件内容的次数(默认值是3次)
目录操作 tree
显示目录树 tree
常见选项:
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定wild-card pattern匹配到的路径
创建目录mkdir
mkdir建文件夹要求上级目录必须存在
常见选项:
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
删除目录
删除空目录rmdir
常见选项:
-p 递归删除父空目录
-v 显示详细信息
注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树
示例
[root@C8-1 ~]# rm -rf * ##已经将rm软连接成为mv
mv: invalid option -- 'r' ##mv报错没有这个选项
Try 'mv --help' for more information.
[root@C8-1 ~]# \rm -rf * ##用\ 反斜杠转义,使用原来的命令rm本身进行删除
[root@C8-1 ~]# ll
total 0
[root@C8-1 ~]# mkdir dir1/dir2/dir3/dir4 ##直接用mkdir创建层级文件夹,报错
mkdir: cannot create directory ‘dir1/dir2/dir3/dir4’: No such file or directory ##因为mkdir要求创建子目录的时候父目录必须存在
[root@C8-1 ~]# mkdir -pv !$ ##使用-pv选项,一个一个创建 。 $! 使用上一条命令的参数作为本条命令的参数
mkdir -pv dir1/dir2/dir3/dir4
mkdir: created directory 'dir1'
mkdir: created directory 'dir1/dir2'
mkdir: created directory 'dir1/dir2/dir3'
mkdir: created directory 'dir1/dir2/dir3/dir4'
[root@C8-1 ~]# tree #tree查看创建好的层级目录
.
└── dir1
└── dir2
└── dir3
└── dir4
4 directories, 0 files
[root@C8-1 ~]# rmdir -pv dir1/dir2/dir3/dir4 ##使用rmdir删除刚才创建的空文件夹
rmdir: removing directory, 'dir1/dir2/dir3/dir4'
rmdir: removing directory, 'dir1/dir2/dir3'
rmdir: removing directory, 'dir1/dir2'
rmdir: removing directory, 'dir1'
[root@C8-1 ~]# tree
.
0 directories, 0 files
* * *
胖并快乐着的死肥宅
* * *