标签:evel fail remove 文件的 ati 文件路径 参数 子目录 强制
文件类型
权限
UID
GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
可以用"stat"命令来查看文件元数据内容
[root@centos7 ~]# stat /bin/bash
File: ‘/bin/bash’
Size: 964600 Blocks: 1888 IO Block: 4096 regular file
Device: 802h/2050d Inode: 137106 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:shell_exec_t:s0
Access: 2020-06-02 01:01:13.023999283 +0800
Modify: 2019-08-08 20:06:56.000000000 +0800
Change: 2020-04-16 12:31:08.006739529 +0800
Birth: -
file:文件名
size:文件的大小
block:文件使用的数据块总数
IO Block:IO块的大小
regular file:文件类型(这里是常规文件),如果是目录或者其他文件类型会显示不同的结果
device:设备编号
inode:inode号
links:硬连接数
access:文件权限
uid:文件属主和属主uid
gid:文件所属组和所属组的gid
context:是selinux的内容,如果没有打开selinux就不会显示了
access、modify、change:文件的时间戳信息,分别代表:文件访问时间,修改时间和元数据信息改变时间
查看文件,比如cat,more,less一个文件后,文件的atime会更新
说明:从kernel2.6.29开始,文件系统默认集成了一个relatime的属性,可以使用mount命令查看。在访问时,有2种情况会更新atime,第一种是mtime比atime新;第二种是上次访问是1天前的了。
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 68 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 17:26:46.443816956 +0800
Modify: 2020-04-24 17:26:46.443816956 +0800
Change: 2020-04-24 17:26:46.443816956 +0800
Birth: -
[root@centos7 data]# cat f1
# 可以看到atime已经更改
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 68 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 17:26:53.282816548 +0800
Modify: 2020-04-24 17:26:46.443816956 +0800
Change: 2020-04-24 17:26:46.443816956 +0800
Birth: -
使用vim更改文件的内容会同时更新文件的mtime、ctime和atime;如果使用echo修改文件只会修改mtime和ctime,不会修改atime。
说明:使用vim打开文件,但是没有修改,使用“:q”退出,只会更改atime,如果修改了内容或者使用了“:wq”退出,则三个时间都会修改
[root@centos7 data]# stat f1
File: ‘f1’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 70 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 17:47:26.431981437 +0800
Modify: 2020-04-24 17:47:26.431981437 +0800
Change: 2020-04-24 17:47:26.431981437 +0800
Birth: -
# 使用echo的方式,只修改了mtime和ctime,没有修改atime
[root@centos7 data]# echo abc >> f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 70 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 17:47:26.431981437 +0800
Modify: 2020-04-24 17:47:34.695980944 +0800
Change: 2020-04-24 17:47:34.695980944 +0800
更改文件的名称,大小,权限等只会更新文件的ctime
[root@centos7 data]#stat f1
File: ‘f1’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 805h/2053d Inode: 70 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-04-24 17:51:46.791987719 +0800
Modify: 2020-04-24 17:52:06.253986559 +0800
Change: 2020-04-24 17:52:06.253986559 +0800
Birth: -
# 改了名字之后,只有ctime修改
[root@centos7 data]#mv f1 f2
[root@centos7 data]#stat f2
File: ‘f2’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 805h/2053d Inode: 70 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-04-24 17:51:46.791987719 +0800
Modify: 2020-04-24 17:52:06.253986559 +0800
Change: 2020-04-24 17:53:17.430982316 +0800
Birth: -
# 修改了权限之后,只有ctime改变
[root@centos7 data]#stat f2
File: ‘f2’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 805h/2053d Inode: 70 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-04-24 17:51:46.791987719 +0800
Modify: 2020-04-24 17:52:06.253986559 +0800
Change: 2020-04-24 17:53:17.430982316 +0800
Birth: -
[root@centos7 data]#
[root@centos7 data]#chmod 777 f2
[root@centos7 data]#stat f2
File: ‘f2’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 805h/2053d Inode: 70 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-04-24 17:51:46.791987719 +0800
Modify: 2020-04-24 17:52:06.253986559 +0800
Change: 2020-04-24 17:54:13.422978979 +0800
Birth: -
使用touch命令,指定修改
不加任何参数,如果文件不存在则创建文件,如果文件存在就刷新时间戳
[root@centos7 data]# ll f1
ls: cannot access f1: No such file or directory
[root@centos7 data]# touch f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:38:58.147987920 +0800
Modify: 2020-04-24 16:38:58.147987920 +0800
Change: 2020-04-24 16:38:58.147987920 +0800
Birth: -
# touch了文件f1之后,时间戳更新了
[root@centos7 data]# touch f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:39:05.115987505 +0800
Modify: 2020-04-24 16:39:05.115987505 +0800
Change: 2020-04-24 16:39:05.115987505 +0800
Birth: -
-a 仅改变 atime和ctime
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:39:05.115987505 +0800
Modify: 2020-04-24 16:39:05.115987505 +0800
Change: 2020-04-24 16:39:05.115987505 +0800
Birth: -
# 只修改了atime和ctime,而mtime没有修改
[root@centos7 data]# touch -a f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:41:55.755977334 +0800
Modify: 2020-04-24 16:39:05.115987505 +0800
Change: 2020-04-24 16:41:55.755977334 +0800
Birth: -
-m 仅改变 mtime和ctime
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:41:55.755977334 +0800
Modify: 2020-04-24 16:39:05.115987505 +0800
Change: 2020-04-24 16:41:55.755977334 +0800
Birth: -
# 只修改了mtime和ctime,没有修改atime
[root@centos7 data]# touch -m f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:41:55.755977334 +0800
Modify: 2020-04-24 16:44:04.003969689 +0800
Change: 2020-04-24 16:44:04.003969689 +0800
Birth: -
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
# 指定f1的atime和mtime为2019-04-26 19:10:10
[root@centos7 data]# touch -t 201904261910.10 f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2019-04-26 19:10:10.000000000 +0800
Modify: 2019-04-26 19:10:10.000000000 +0800
Change: 2020-04-24 16:49:48.299949168 +0800
硬链接,以文件副本的形式存在。但不占用实际空间。
不允许给目录创建硬链接
硬链接只有在同一个文件系统中才能创建
创建硬连接和软连接都使用“ln”命令
ln [参数][源文件或目录][目标文件或目录]
# 创建a1文件的硬连接文件a1.link,可以看到inode都是67
[root@centos7 data]# touch a1
[root@centos7 data]# ln a1 a1.link
[root@centos7 data]# ll -i a1 a1.link
67 -rw-r--r--. 2 root root 0 Apr 24 12:07 a1
67 -rw-r--r--. 2 root root 0 Apr 24 12:07 a1.link
[root@centos7 data]# touch a1
[root@centos7 data]# ln -s a1 a1.slink
[root@centos7 data]# ll a1 a1.slink
-rw-r--r--. 1 root root 0 Apr 26 19:15 a1
lrwxrwxrwx. 1 root root 2 Apr 26 19:16 a1.slink -> a1
[root@centos7 data]# mkdir d1
# 创建硬连接报错
[root@centos7 data]# ln d1 d1.link
ln: ‘d1’: hard link not allowed for directory
# 创建软连接成功
[root@centos7 data]# ln -s d1 d1.link
[root@centos7 data]# ll -d d1 d1.link
drwxr-xr-x. 2 root root 6 Apr 24 12:09 d1
lrwxrwxrwx. 1 root root 2 Apr 24 12:10 d1.link -> d1
# 跨文件系统创建硬连接报错
[root@centos7 data]# ln a1 /root/a2.link
ln: failed to create hard link ‘/root/a2.link’ => ‘a1’: Invalid cross-device link
# 跨文件系统创建软连接成功
[root@centos7 data]# ln -s ../data/a1 /root/a1.link
[root@centos7 data]# ll /root/a1.link
lrwxrwxrwx. 1 root root 10 Apr 24 12:32 /root/a1.link -> ../data/a1
[root@centos7 data]# ln -s ../data/a1 /root/a1.slink
[root@centos7 data]# ll /root/a1.slink
lrwxrwxrwx. 1 root root 10 Apr 24 12:58 /root/a1.slink -> ../data/a1
# 可以看到两个文件内容相同,软连接创建成功
[root@centos7 data]# cat /data/a1
sdflasdfasfasdf
[root@centos7 data]# cat /root/a1.slink
sdflasdfasfasdf
# d1目录中有个子目录d2
[root@centos7 data]# ls d1
d2
# 创建一个d1的软连接d1.slink
[root@centos7 data]# ln -s d1 d1.slink
[root@centos7 data]# ls
d1 d1.slink
# 删除时写的是d1.slink/
[root@centos7 data]# rm -rf d1.slink/
# 使用ls命令,在d1目录下看不到任何内容
[root@centos7 data]# ls d1
[root@centos7 data]# ls
d1 d1.slink
# 所以在删除时不能带“/”
[root@centos7 data]# rm -rf d1.slink
[root@centos7 data]# ls
d1
[root@centos7 data]# ls d1
d2
不加任何参数,如果文件不存在则创建文件,如果文件存在就刷新时间戳
[root@centos7 data]# ll f1
ls: cannot access f1: No such file or directory
[root@centos7 data]# touch f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:38:58.147987920 +0800
Modify: 2020-04-24 16:38:58.147987920 +0800
Change: 2020-04-24 16:38:58.147987920 +0800
Birth: -
# touch了已经存在的文件f1之后,时间戳更新了
[root@centos7 data]# touch f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:39:05.115987505 +0800
Modify: 2020-04-24 16:39:05.115987505 +0800
Change: 2020-04-24 16:39:05.115987505 +0800
Birth: -
-a 仅改变 atime和ctime
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:39:05.115987505 +0800
Modify: 2020-04-24 16:39:05.115987505 +0800
Change: 2020-04-24 16:39:05.115987505 +0800
Birth: -
# 只修改了atime和ctime,而mtime没有修改
[root@centos7 data]# touch -a f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:41:55.755977334 +0800
Modify: 2020-04-24 16:39:05.115987505 +0800
Change: 2020-04-24 16:41:55.755977334 +0800
Birth: -
-m 仅改变 mtime和ctime
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:41:55.755977334 +0800
Modify: 2020-04-24 16:39:05.115987505 +0800
Change: 2020-04-24 16:41:55.755977334 +0800
Birth: -
# 只修改了mtime和ctime,没有修改atime
[root@centos7 data]# touch -m f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-04-24 16:41:55.755977334 +0800
Modify: 2020-04-24 16:44:04.003969689 +0800
Change: 2020-04-24 16:44:04.003969689 +0800
Birth: -
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳,其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
# 指定f1的atime和mtime为2019-04-26 19:10:10
[root@centos7 data]# touch -t 201904261910.10 f1
[root@centos7 data]# stat f1
File: ‘f1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 69 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2019-04-26 19:10:10.000000000 +0800
Modify: 2019-04-26 19:10:10.000000000 +0800
Change: 2020-04-24 16:49:48.299949168 +0800
-c 如果文件不存在,则不予创建
# f2文件不存在
[root@centos7 data]# ll f2
ls: cannot access f2: No such file or directory
# 使用-c参数,看到并没有创建f2
[root@centos7 data]# touch -c f2
[root@centos7 data]# ll f2
ls: cannot access f2: No such file or directory
cp [OPTION]... [-T] SOURCE DEST
SOURCE和DEST都是指的“单个文件”
cp [OPTION]... SOURCE... DIRECTORY
SOURCE...指可以同时复制多个文件,后面跟要复制的目录
cp [OPTION]... -t DIRECTORY SOURCE...
使用-t参数可以把目标目录放前面,要复制的文件放后面,这种用法较少
cp SRC DEST
-i 覆盖前提示
默认系统出于安全考虑已经为cp命令设置了别名添加了-i选项,如果不使用"-i",就会直接覆盖
[root@centos7 ~]# alias cp
alias cp=‘cp -i‘
复制时如果目标文件有相同名字存在,则会询问是否覆盖原有文件,下面第一次复制没有提示,第二次复制由于已经存在第一次复制的内容,就会提示是否覆盖之前的文件,要覆盖需要输“y或者yes”
[root@centos7 ~]# cp -i /etc/passwd /data
[root@centos7 ~]# cp -i /etc/passwd /data
cp: overwrite ‘/data/passwd’?
-n 不覆盖,注意两者顺序
[root@centos7 ~]# ll /data/passwd
-rw-r--r--. 1 root root 2418 Apr 23 17:00 /data/passwd
# 使用“-n”参数之后,发现文件的时间没有改变,说明并没有覆盖
[root@centos7 ~]# cp -n /etc/passwd /data
[root@centos7 ~]# ll /data/passwd
-rw-r--r--. 1 root root 2418 Apr 23 17:00 /data/passwd
-r, -R 递归复制目录及内部的所有内容
# cp默认不能复制目录,需要使用-r或-R参数
[root@centos7 ~]# cp /etc/sysconfig/ /data/sysconfigbak
cp: omitting directory ‘/etc/sysconfig/’
[root@centos7 ~]# cp -r /etc/sysconfig/ /data/sysconfigbak
[root@centos7 ~]# ls -d /data/sysconfigbak
/data/sysconfigbak
-d --no-dereference --preserv=links 不复制原文件,只复制链接名
# /etc/grub2.cfg是个软连接文件指向/boot/grub2/grub.cfg
[root@centos7 ~]# ll /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 Apr 16 12:32 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
# 如果直接使用cp复制/etc/grub2.cfg文件,实际是把软连接所指的/boot/grub2/grub.cfg文件复制了
[root@centos7 ~]# cp /etc/grub2.cfg /data/
# 可以看到复制之后的/data/grub2.cfg和/boot/grub2/grub.cfg两个文件大小相同
[root@centos7 ~]# ll /etc/grub2.cfg /boot/grub2/grub.cfg /data/grub2.cfg
-rw-r--r--. 1 root root 4281 Apr 16 12:39 /boot/grub2/grub.cfg
-rw-r--r--. 1 root root 4281 Apr 23 16:39 /data/grub2.cfg
lrwxrwxrwx. 1 root root 22 Apr 16 12:32 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
# 使用“-d”参数就可以仅复制软链接
[root@centos7 ~]# cp -d /etc/grub2.cfg /data/
[root@centos7 ~]# ll /data/grub2.cfg
lrwxrwxrwx. 1 root root 22 Apr 23 16:34 /data/grub2.cfg -> ../boot/grub2/grub.cfg
--preserv[=ATTR_LIST]
默认:只写--preserv 相当于--preserv=mode,ownership,timestamp
可以加的参数:mode: 权限、ownership: 属主属组、timestamp、links、xattr、context、all
# 在直接cp时,复制的文件一些元数据会发生改变
[root@centos7 ~]# cp /etc/passwd /data
cp: overwrite ‘/data/passwd’? yes
# 可以看到复制的文件和源文件“时间戳”不同
[root@centos7 ~]# ll /etc/passwd /data/passwd
-rw-r--r--. 1 root root 2418 Apr 23 16:44 /data/passwd
-rw-r--r--. 1 root root 2418 Apr 22 22:22 /etc/passwd
# 使用“--preserv”,在复制时就保留了源文件的元数据
[root@centos7 ~]# cp --preserv /etc/passwd /data/
cp: overwrite ‘/data/passwd’? yes
[root@centos7 ~]# ll /etc/passwd /data/passwd
-rw-r--r--. 1 root root 2418 Apr 22 22:22 /data/passwd
-rw-r--r--. 1 root root 2418 Apr 22 22:22 /etc/passwd
-a 归档,相当于-dR --preserv=all,是个比较重要的参数
# “-a”参数包含了“-dR --preserv=all”所有参数的功能,是个比较重要的参数
[root@centos7 ~]# cp -a /etc/passwd /data
cp: overwrite ‘/data/passwd’? yes
[root@centos7 ~]# ll /etc/passwd /data/passwd
-rw-r--r--. 1 root root 2418 Apr 22 22:22 /data/passwd
-rw-r--r--. 1 root root 2418 Apr 22 22:22 /etc/passwd
作用:移动和重命名文件
格式:
常用选项:
移动文件或者给文件改名
[root@centos7 data]# touch f1
[root@centos7 data]# ls
f1
[root@centos7 data]# mv f1 f2
[root@centos7 data]# ls
f2
-i 交互式
# 默认系统已经添加了别名,有相同文件名存在时,询问是否覆盖
[root@centos7 ~]# alias mv
alias mv=‘mv -i‘
[root@centos7 data]# mkdir /root/rootdir
[root@centos7 data]# mv -i /root/rootdir /data/rootdir
mv: overwrite ‘/data/rootdir/rootdir’? yes
[root@centos7 data]#
-f 强制
[root@centos7 data]# mkdir /data/rootdir
[root@centos7 data]# mkdir /root/rootdir
[root@centos7 data]# mv -f /root/rootdir /data/rootdir
[root@centos7 data]#
-b 目标存在,覆盖前先备份
[root@centos7 data]# touch /root/rootfile
[root@centos7 data]# touch /data/rootfile
[root@centos7 data]# mv -b /root/rootfile /data/rootfile
mv: overwrite ‘/data/rootfile’? yes
# 可以看到多了一个~结尾的文件,就是备份文件
[root@centos7 data]# ll /data
total 0
-rw-r--r--. 1 root root 0 Apr 23 17:33 rootfile
-rw-r--r--. 1 root root 0 Apr 23 17:33 rootfile~
[root@centos7 data]#
作用:删除文件或目录
格式:
常用选项:
-i 交互式
# 默认系统已经为“rm”加了“-i”参数的别名
[root@centos7 data]# alias rm
alias rm=‘rm -i‘
[root@centos7 data]# rm -i f1
rm: remove regular empty file ‘f1’? y
-f 强制删除
[root@centos7 data]# touch f1
[root@centos7 data]# rm -if f1
# 把“-i”参数写在后面就会有提示了
[root@centos7 data]# touch f1
[root@centos7 data]# rm -fi f1
rm: remove regular empty file ‘f1’? y
-r 递归,用于删除目录
[root@centos7 data]# ls d1
d2
[root@centos7 data]# rm -r d1
rm: descend into directory ‘d1’? y
rm: remove directory ‘d1/d2’? y
rm: remove directory ‘d1’? y
# 可以直接使用“-rf”参数
[root@centos7 data]# mkdir -p d1/d2
[root@centos7 data]# ls d1
d2
[root@centos7 data]# rm -rf d1
rmdir命令只能删除空目录,功能可以被rm命令取代
-p: 递归删除父空目录
# 不能直接删除d1目录,因为d1里面还有子目录
[root@centos7 data]# mkdir -p d1/d2
[root@centos7 data]# rmdir -p d1
rmdir: failed to remove ‘d1’: Directory not empty
# 删除了d2空目录之后,d1就变成了空目录,d1也会一起被删除
[root@centos7 data]# rmdir -p d1/d2
[root@centos7 data]# ls d1
ls: cannot access d1: No such file or directory
-v: 显示详细信息
[root@centos7 data]# rmdir -pv d1/d2
rmdir: removing directory, ‘d1/d2’
rmdir: removing directory, ‘d1’
作用:显示目录树
常用参数:
-d: 只显示目录
[root@centos7 data]# tree d1
d1
└── d2
├── d3
│?? └── f3
└── f2
2 directories, 2 files
[root@centos7 data]# tree -d d1
d1
└── d2
└── d3
2 directories
-L level:指定显示的层级数目
[root@centos7 data]# tree -L 1
.
└── d1
1 directory, 0 files
[root@centos7 data]# tree -L 2
.
└── d1
└── d2
2 directories, 0 files
[root@centos7 data]# tree -L 3
.
└── d1
└── d2
├── d3
└── f2
3 directories, 1 file
[root@centos7 data]# tree -L 4
.
└── d1
└── d2
├── d3
│?? └── f3
└── f2
作用: 创建目录
常用选项:
-p: 存在于不报错,且可自动创建所需的各目录
# 在没有d2目录时,无法创建d3目录,加上“-p”参数,就直接把所有目录都创建了
[root@centos7 data]# mkdir d1/d2/d3
mkdir: cannot create directory ‘d1/d2/d3’: No such file or directory
[root@centos7 data]# mkdir -p d1/d2/d3
-v: 显示详细信息
[root@centos7 data]# mkdir -pv d1/d2/d3
mkdir: created directory ‘d1’
mkdir: created directory ‘d1/d2’
mkdir: created directory ‘d1/d2/d3’
-m MODE: 创建目录时直接指定权限
# 创建一个拥有777权限的目录dir
[root@centos7 data]# mkdir -m 777 dir
[root@centos7 data]# ll -d dir
drwxrwxrwx. 2 root root 6 Apr 24 17:22 dir
可以在vim中使用搜索替代的方式,命令:“%s@^ +@@g”
[root@centos7 tmp]# cp /etc/profile /tmp
[root@centos7 tmp]# vim /tmp/profile
使用:“%s@^ +@@g”来删除行首的空格
在用户家目录创建“.vimrc”文件,在该文件中设置“set tabstop=4”
标签:evel fail remove 文件的 ati 文件路径 参数 子目录 强制
原文地址:https://www.cnblogs.com/kfscott/p/12781735.html