专栏首页Jed的技术阶梯008.Linux文件目录管理命令基础

008.Linux文件目录管理命令基础

1. pwd:显示当前所在的位置

# 显示当前工作目录的绝对路径
[15:31:44 root@node00 tmp]# pwd
/tmp

# 如果当前目录是软链接目录,则显示软链接目录的物理路径
[15:35:54 root@node00 a]# pwd -P
/tmp/a

# 如果当前目录是软链接目录,还是显示逻辑路径(默认)
[15:35:58 root@node00 a]# pwd -L
/tmp/b/a

# 使用PWD环境变量输出当前目录的绝对路径
[15:47:10 root@node00 a]# echo $PWD
/tmp/b/a

2. cd:切换目录

# 切换到home目录,由环境变量$HOME决定
[15:47:51 root@node00 a]# cd

# 切换到home目录,由环境变量$HOME决定
[15:47:51 root@node00 a]# cd ~

# 切换到上一个工作目录
[15:50:02 root@node00 ~]# cd -

# 返回上一级目录
[15:50:51 root@node00 ~]# cd ..

# 切换到软链接目录的源目录
[15:52:20 root@node00 /]# cd /tmp/b/a -P

# 切换到软链接目录的逻辑目录
[15:52:20 root@node00 /]# cd /tmp/b/a -L

3. tree:以树型结构显示目录下的内容

# 安装tree命令
[16:00:29 root@node00 tmp]# yum install -y tree

[15:56:16 root@node00 tmp]# tree /tmp
/tmp
├── a
├── b
│   └── a -> /tmp/a
├── b.txt
├── hsperfdata_root
├── systemd-private-62ed86d1fa3b4a8d8e0f50e9957c5c73-chronyd.service-UIg3EK
│   └── tmp
├── vmware-root_811-4290756501
├── vmware-root_821-4290232204
└── vmware-root_832-2730693535

# 显示所有文件,包括隐藏文件
[15:57:05 root@node00 tmp]# tree -a ~
/root
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
├── .lesshst
├── .pki
│   └── nssdb
├── .tcshrc
└── .viminfo

# 只显示目录
[15:57:05 root@node00 tmp]# tree -d /tmp

# 显示每个文件的绝对路径
[15:57:05 root@node00 tmp]# tree -f /tmp
[15:57:53 root@node00 tmp]# tree -f /tmp
/tmp
├── /tmp/a
├── /tmp/b
│   └── /tmp/b/a -> /tmp/a
├── /tmp/b.txt
├── /tmp/hsperfdata_root
├── /tmp/systemd-private-62ed86d1fa3b4a8d8e0f50e9957c5c73-chronyd.service-UIg3EK
│   └── /tmp/systemd-private-62ed86d1fa3b4a8d8e0f50e9957c5c73-chronyd.service-UIg3EK/tmp
├── /tmp/vmware-root_811-4290756501
├── /tmp/vmware-root_821-4290232204
└── /tmp/vmware-root_832-2730693535

# 不显示树枝
[15:58:53 root@node00 tmp]# tree -if /tmp
/tmp
/tmp/a
/tmp/b
/tmp/b/a -> /tmp/a
/tmp/b.txt
/tmp/hsperfdata_root
/tmp/systemd-private-62ed86d1fa3b4a8d8e0f50e9957c5c73-chronyd.service-UIg3EK
/tmp/systemd-private-62ed86d1fa3b4a8d8e0f50e9957c5c73-chronyd.service-UIg3EK/tmp
/tmp/vmware-root_811-4290756501
/tmp/vmware-root_821-4290232204
/tmp/vmware-root_832-2730693535

# 指定最大遍历层数
[16:00:25 root@node00 tmp]# tree -L 1 /tmp
/tmp
├── a
├── b
├── b.txt
├── hsperfdata_root
├── systemd-private-62ed86d1fa3b4a8d8e0f50e9957c5c73-chronyd.service-UIg3EK
├── vmware-root_811-4290756501
├── vmware-root_821-4290232204
└── vmware-root_832-2730693535

# 在文件末尾加上文件类型标识符
# /:目录
# *:执行文件
# =:Socket
# @:符号连接
# |:管道
[16:02:24 root@node00 tmp]# tree -F /tmp
/tmp
├── a/
├── b/
│   └── a -> /tmp/a/
├── b.txt
├── hsperfdata_root/
├── systemd-private-62ed86d1fa3b4a8d8e0f50e9957c5c73-chronyd.service-UIg3EK/
│   └── tmp/
├── vmware-root_811-4290756501/
├── vmware-root_821-4290232204/
└── vmware-root_832-2730693535/

4. mkdir:创建目录

# 创建目录,如果目录已经存在,则给出提示
[16:05:35 root@node00 tmp]# mkdir test

# 递归创建目录
[16:05:35 root@node00 tmp]# mkdir -p /test/a/b/c

# 打印创建目录的过程
[16:05:39 root@node00 tmp]# mkdir -pv /tmp/test/a/b/c
mkdir: created directory ‘/tmp/test/a’
mkdir: created directory ‘/tmp/test/a/b’
mkdir: created directory ‘/tmp/test/a/b/c’

# 创建目录并设置权限,递归创建的目录只有第一层目录具有该权限
[16:08:33 root@node00 tmp]# mkdir -p -m 600 /tmp/test2

5. touch:创建文件或者更该文件时间戳

# 如果文件不存在,则创建该文件,否则更新该文件的时间戳
[16:11:34 root@node00 tmp]# touch a.txt

# 创建多个文件
[16:11:34 root@node00 tmp]# touch a.txt b.txt

# 批量创建文件,注意是两个点
touch test{0..5}.txt

# 查看文件时间戳
[16:16:34 root@node00 tmp]# stat a.txt
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 16777289    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
# 最新访问时间
Access: 2020-04-08 16:13:23.390704295 +0800
# 最新修改时间
Modify: 2020-04-08 16:13:23.390704295 +0800
# 最新的状态改变时间
Change: 2020-04-08 16:13:23.390704295 +0800

# 只修改访问时间(修改访问时间会自动更新状态改变时间),不加参数的话默认同时修改3个时间
[16:17:46 root@node00 tmp]# touch -a a.txt
[16:19:14 root@node00 tmp]# stat a.txt
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 16777289    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-08 16:19:14.359872616 +0800
Modify: 2020-04-08 16:13:23.390704295 +0800
Change: 2020-04-08 16:19:14.359872616 +0800

# 只修改修改时间(修改修改时间会自动更新状态改变时间)
[16:19:15 root@node00 tmp]# touch -m a.txt
[16:19:36 root@node00 tmp]# stat a.txt
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 16777289    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-08 16:19:14.359872616 +0800
Modify: 2020-04-08 16:19:36.322009588 +0800
Change: 2020-04-08 16:19:36.322009588 +0800

# 手动指定修改时间 -d yyyyMMdd
[16:23:29 root@node00 tmp]# touch -d 20200408 a.txt
[16:23:36 root@node00 tmp]# stat a.txt 
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 16777289    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-08 00:00:00.000000000 +0800
Modify: 2020-04-08 00:00:00.000000000 +0800
Change: 2020-04-08 16:23:36.233505783 +0800

# 手动指定修改时间 -t yyyyMMddHHmm.ss
[16:24:50 root@node00 tmp]# touch -t 202004081620.50 a.txt 
[16:26:02 root@node00 tmp]# stat a.txt 
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 16777289    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-08 16:20:50.000000000 +0800
Modify: 2020-04-08 16:20:50.000000000 +0800
Change: 2020-04-08 16:26:02.889420414 +0800

# 设置文件时间戳与另一个指定文件的时间戳相同
[16:23:40 root@node00 tmp]# stat b.txt 
  File: ‘b.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 16809902    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-08 16:13:23.390704295 +0800
Modify: 2020-04-08 16:13:23.390704295 +0800
Change: 2020-04-08 16:13:23.390704295 +0800
 Birth: -

# 将b.txt的时间戳赋给a.txt
[16:24:21 root@node00 tmp]# touch -r b.txt a.txt 
[16:24:47 root@node00 tmp]# stat a.txt 
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d  Inode: 16777289    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-08 16:13:23.390704295 +0800
Modify: 2020-04-08 16:13:23.390704295 +0800
Change: 2020-04-08 16:24:47.059947500 +0800
 Birth: -

6. ls:显示目录下内容及属性信息

  • ls命令使用
# 显示所有文件和目录
[16:29:31 root@node00 test]# ls
a.txt  b.txt  dir01  dir02

# 显示所有文件和目录,包括隐藏目录
[16:29:33 root@node00 test]# ls -a
.  ..  a.txt  b.txt  dir01  dir02

# 列出文件和目录的详细属性
[16:30:08 root@node00 test]# ls -l 
total 0
-rw-r--r-- 1 root root 0 Apr  8 16:29 a.txt
-rw-r--r-- 1 root root 0 Apr  8 16:29 b.txt
drwxr-xr-x 2 root root 6 Apr  8 16:29 dir01
drwxr-xr-x 2 root root 6 Apr  8 16:29 dir02

# 根据最后修改时间进行排序,默认根据文件名进行排序
16:30:35 root@node00 test]# ls -t
dir01  dir02  a.txt  b.txt

# 根据排序规则的相反顺序进行排序
[16:32:23 root@node00 test]# ls -tr
b.txt  a.txt  dir02  dir01

# 在文件末尾加上文件类型标识符
# /:目录
# *:执行文件
# =:Socket
# @:符号连接
# |:管道
[16:32:45 root@node00 test]# ls -F
a.txt  b.txt  dir01/  dir02/

# 只在目录后在"/"标识符,其他类型的不加标识符号
[16:36:28 root@node00 test]# ls -p
a.txt  b.txt  dir01/  dir02/

# 只显示目录,目标是目录,则显示该目录,不列出该目录下的文件
[16:36:17 root@node00 test]# ls -d dir01
dir01

# 显示Inode信息
[16:37:13 root@node00 test]# ls -i
17989879 a.txt  16809902 b.txt  34192561 dir01  50602242 dir02

# 人性化的显示文件的大小,需要与l配套使用
[16:39:31 root@node00 jdk1.8.0_241]# ls -lh
total 26M
drwxr-xr-x. 2 10143 10143 4.0K Dec 11 18:35 bin
-r--r--r--. 1 10143 10143 3.2K Dec 11 18:35 COPYRIGHT
drwxr-xr-x. 3 10143 10143  132 Dec 11 18:35 include
-rw-r--r--. 1 10143 10143 5.0M Dec 11 15:41 javafx-src.zip
drwxr-xr-x. 5 10143 10143  185 Dec 11 18:35 jre
drwxr-xr-x. 5 10143 10143  245 Dec 11 18:35 lib
-r--r--r--. 1 10143 10143   44 Dec 11 18:35 LICENSE
drwxr-xr-x. 4 10143 10143   47 Dec 11 18:35 man
-r--r--r--. 1 10143 10143  159 Dec 11 18:35 README.html
-rw-r--r--. 1 10143 10143  424 Dec 11 18:35 release
-rw-r--r--. 1 10143 10143  21M Dec 11 18:35 src.zip
-rw-r--r--. 1 10143 10143 114K Dec 11 15:41 THIRDPARTYLICENSEREADME-JAVAFX.txt
-r--r--r--. 1 10143 10143 166K Dec 11 18:35 THIRDPARTYLICENSEREADME.txt

# 显示除了"."和".."之外的所有的文件和目录,包括隐藏文件
[16:40:24 root@node00 ~]# ls -A
.bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .lesshst  .pki  .tcshrc  .viminfo

# 根据文件大小降序排序
[16:42:36 root@node00 lib]# ls -S
tools.jar  ant-javafx.jar  jconsole.jar  javafx-mx.jar  jexec         orb.idl         visualvm
ct.sym     sa-jdi.jar      dt.jar        ir.idl         packager.jar  missioncontrol  amd64

# 递归列出所有子目录
[16:43:20 root@node00 jdk1.8.0_241]# ls -R

# 逐行列出项目而不是逐栏列出
[16:43:20 root@node00 jdk1.8.0_241]# ls -x
bin      COPYRIGHT  include                             javafx-src.zip               jre  lib  LICENSE  man  README.html
release  src.zip    THIRDPARTYLICENSEREADME-JAVAFX.txt  THIRDPARTYLICENSEREADME.txt

# 根据扩展名进行排序 
[16:44:13 root@node00 jdk1.8.0_241]# ls -X
bin        include  lib      man      README.html                         THIRDPARTYLICENSEREADME.txt  src.zip
COPYRIGHT  jre      LICENSE  release  THIRDPARTYLICENSEREADME-JAVAFX.txt  javafx-src.zip

# 根据状态改变时间进行排序
[16:45:05 root@node00 jdk1.8.0_241]# ls -c

# 根据状态最后访问时间进行排序
[16:45:05 root@node00 jdk1.8.0_241]# ls -u

# 是否使用颜色来区分不同的文件
# auto:自动显示(默认)
# never:不显示
# always:总是显示
[16:47:03 root@node00 test]# ls --color=auto
a.txt  b.txt  dir01  dir02

# 以完整的时间格式输出
[16:47:20 root@node00 test]# ls --full-time
total 4
-rw-r--r-- 1 root root 11 2020-04-08 16:38:32.326683692 +0800 a.txt
-rw-r--r-- 1 root root  0 2020-04-08 16:29:22.658730596 +0800 b.txt
drwxr-xr-x 2 root root  6 2020-04-08 16:29:30.261785276 +0800 dir01
drwxr-xr-x 2 root root  6 2020-04-08 16:29:30.261785276 +0800 dir02

# 显示状态改变时间,与l选项配合使用(默认使用文件的最后修改时间)
[16:49:47 root@node00 test]# ls -l --time=ctime
total 4
-rw-r--r-- 1 root root 11 Apr  8 16:38 a.txt
-rw-r--r-- 1 root root  0 Apr  8 16:29 b.txt
drwxr-xr-x 2 root root  6 Apr  8 16:29 dir01
drwxr-xr-x 2 root root  6 Apr  8 16:29 dir02

# 显示最后访问时间,与l选项配合使用(默认使用文件的最后修改时间)
[16:49:53 root@node00 test]# ls -l --time=atime
total 4
-rw-r--r-- 1 root root 11 Apr  8 16:29 a.txt
-rw-r--r-- 1 root root  0 Apr  8 16:29 b.txt
drwxr-xr-x 2 root root  6 Apr  8 16:29 dir01
drwxr-xr-x 2 root root  6 Apr  8 16:29 dir02

# 设置时间格式,与l选项配合使用
[16:52:19 root@node00 test]# ls -l --time-style=full-iso
total 4
-rw-r--r-- 1 root root 11 2020-04-08 16:38:32.326683692 +0800 a.txt
-rw-r--r-- 1 root root  0 2020-04-08 16:29:22.658730596 +0800 b.txt
drwxr-xr-x 2 root root  6 2020-04-08 16:29:30.261785276 +0800 dir01
drwxr-xr-x 2 root root  6 2020-04-08 16:29:30.261785276 +0800 dir02
[16:52:25 root@node00 test]# ls -l --time-style=long-iso
total 4
-rw-r--r-- 1 root root 11 2020-04-08 16:38 a.txt
-rw-r--r-- 1 root root  0 2020-04-08 16:29 b.txt
drwxr-xr-x 2 root root  6 2020-04-08 16:29 dir01
drwxr-xr-x 2 root root  6 2020-04-08 16:29 dir02
[16:52:49 root@node00 test]# ls -l --time-style=iso
total 4
-rw-r--r-- 1 root root 11 04-08 16:38 a.txt
-rw-r--r-- 1 root root  0 04-08 16:29 b.txt
drwxr-xr-x 2 root root  6 04-08 16:29 dir01
drwxr-xr-x 2 root root  6 04-08 16:29 dir02
[16:52:57 root@node00 test]# ls -l --time-style=locale
total 4
-rw-r--r-- 1 root root 11 Apr  8 16:38 a.txt
-rw-r--r-- 1 root root  0 Apr  8 16:29 b.txt
drwxr-xr-x 2 root root  6 Apr  8 16:29 dir01
drwxr-xr-x 2 root root  6 Apr  8 16:29 dir02

# 找到最新创建的文件
[17:06:25 root@node00 test]# ls -ltr
total 4
-rw-r--r-- 1 root root  0 Apr  8 16:29 b.txt
drwxr-xr-x 2 root root  6 Apr  8 16:29 dir02
drwxr-xr-x 2 root root  6 Apr  8 16:29 dir01
-rw-r--r-- 1 root root 11 Apr  8 16:38 a.txt
  • 给ls命令起别名
# 查看系统默认的ls别名
[16:53:05 root@node00 test]# alias | grep ls
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'

# 自定义别名(临时生效)
[16:56:48 root@node00 test]# alias lst='ls -l --time-style=long-iso --color=auto'
[17:00:47 root@node00 test]# lst
total 4
-rw-r--r-- 1 root root 11 2020-04-08 16:38 a.txt
-rw-r--r-- 1 root root  0 2020-04-08 16:29 b.txt
drwxr-xr-x 2 root root  6 2020-04-08 16:29 dir01
drwxr-xr-x 2 root root  6 2020-04-08 16:29 dir02

# 自定义别名(永久生效)
# 编辑/etc/bashrc文件,将别名的配置加入其中

# System wide functions and aliases
# Environment stuff goes in /etc/profile
alias lst='ls -l --time-style=long-iso --color=auto'

# 保存退出然后 source /etc/bashrc
  • 使用ls -li列出的文件或者目录的属性内容

7. cp:复制文件或目录

  • cp命令使用
# 将a.txt复制为a2.txt
[17:10:53 root@node00 test]# cp a.txt a2.txt
# 如果a是一个软链接,则复制后的文件c也是一个软链接,由a的源文件指定c
[17:46:15 root@node00 test]# cp -d a c
[17:46:26 root@node00 test]# ll
total 12
lrwxrwxrwx 1 root root  5 2020-04-08 17:45 a -> a.txt
-rw-r--r-- 1 root root 11 2020-04-08 16:38 a.txt
lrwxrwxrwx 1 root root  5 2020-04-08 17:46 c -> a.txt

# 复制后的文件保留原文件的属性:所有者、所属组、权限以及时间戳
[17:46:15 root@node00 test]# cp -p a.txt a3.txt
[17:46:27 root@node00 test]# cp -p a.txt a3.txt
[17:49:24 root@node00 test]# stat a.txt 
  File: ‘a.txt’
  Size: 11          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 17989879    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-08 17:44:23.713472120 +0800
Modify: 2020-04-08 16:38:32.326683692 +0800
Change: 2020-04-08 16:38:32.326683692 +0800
 Birth: -
[17:49:28 root@node00 test]# stat a3.txt 
  File: ‘a3.txt’
  Size: 11          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 17989880    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-08 17:44:23.713472120 +0800
Modify: 2020-04-08 16:38:32.326683692 +0800
Change: 2020-04-08 17:49:24.921869537 +0800

# 递归复制目录以及子目录和文件
[17:51:42 root@node00 test]# cp -r dir01 dir03

# -a:等同于-pdr
[17:51:42 root@node00 test]# cp -a dir01 dir04

# 如果目标文件存在,提示用户是否进行覆盖
# 默认cp带-i选项,因为系统定义了cp的别名
[17:52:11 root@node00 test]# cp -i a.txt a2.txt 
cp: overwrite ‘a2.txt’? y/n
[17:58:40 root@node00 test]# alias | grep cp
alias cp='cp -i'

# 将多个文件复制到指定的目录中
[17:58:08 root@node00 test]# cp a.txt a2.txt dir01
[17:58:35 root@node00 test]# ls dir01/
a2.txt  a.txt
# 如果目标参数在前,需要使用-t选项
[17:58:39 root@node00 test]# cp -t dir02 a.txt a2.txt
[17:58:40 root@node00 test]# ls dir02/
a2.txt  a.txt

# 当文件路径重复时,可以使用{}来快捷书写
# 以下两种写法是等效的
[18:06:15 root@node00 test]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
[18:07:29 root@node00 test]# cp /etc/ssh/sshd_config{,.bak}
  • cp不带-i选项的方法
# 1.使用命令绝对路径,这样就不会使用别名
[17:59:30 root@node00 test]# which cp
alias cp='cp -i'
    /usr/bin/cp
[18:01:02 root@node00 test]# /usr/bin/cp a.txt a2.txt

# 2.命令开头使用"\"
[18:01:17 root@node00 test]# \cp a.txt a2.txt

# 3.临时取消cp的别名
unalias cp

# 4.永久取消cp的别名
# 修改/root/bashrc

# User specific aliases and functions

alias rm='rm -i'
# 注释掉之后,保存退出,source /root/bashrc
# alias cp='cp -i'
alias mv='mv -i'

8. mv:移动或者重命名文件

# 将a.txt的名称修改为aa.txt
# 如果目标文件是一个已经存在的目录,则把目标文件移动到该目录下
[18:11:01 root@node00 test]# mv a.txt aa.txt

# 如果目标文件已经存在,则不会询问是否覆盖,而是直接覆盖
[18:13:41 root@node00 test]# mv -f a.txt a2.txt

# 如果目标文件已经存在,则询问是否覆盖,而不是直接覆盖
[18:13:41 root@node00 test]# mv -i a.txt a2.txt
# mv默认使用-i选项,因为系统内置了mv的别名
[18:19:20 root@node00 test]# alias | grep mv
alias mv='mv -i'

# 如果目标文件已经存在,则不会覆盖目标文件,而是什么也不做
[18:13:41 root@node00 test]# mv -n a.txt a2.txt

# 只有在源文件比目标文件新,或者目标文件不存在的时候,才进行移动
[18:13:41 root@node00 test]# mv -u a.txt a2.txt

# 移动多个文件到指定目录下
# 如果目标目录在前,需要使用-t选项
[18:13:50 root@node00 test]# mv a2.txt a3.txt dir02/
# 把dir02/a2.txt dir02/a3.txt这两个文件移动到dir03目录下
[18:17:13 root@node00 test]# mv -t dir03 dir02/a2.txt dir02/a3.txt

9. rm:删除文件或者目录

# 删除文件
[18:24:09 root@node00 test]# rm a.txt 
rm: remove regular file ‘a.txt’? y

# 强制删除,忽略不存在的文件,不提示是否确认删除
[18:24:18 root@node00 test]# rm -f b

# 删除之前询问是否删除,默认询问,因为系统别名中设置了
[18:24:18 root@node00 test]# rm -i b
[18:25:29 root@node00 test]# alias | grep rm
alias rm='rm -i'

# 递归删除目录
[18:26:45 root@node00 test]# rm -rf dir01

# 在删除超过三个文件或者递归删除前要求确认
[18:28:11 root@node00 test]# rm -rI dir04
rm: remove 1 argument recursively? y

10. 危险操作

  • CentOS7中,执行rm -rf /将会给出警告信息
[18:28:31 root@node00 test]# rm -rf /
rm: it is dangerous to operate recursively on ‘/’
rm: use --no-preserve-root to override this failsafe
  • 执行rm -rf --no-preserve-root /将会直接删除/
  • 执行rm -rf /*将会直接删除/,不会给任何警告信息
  • 执行rm -rf ./*,如果不小心多加了空格,并且命令在重要的目录执行,可能造成灾难事件,例如:原意是rm -rf ./test/*,结果执行了rm -rf ./test/ *,而且在/目录下,同样会删除系统

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux设置本地yum源

    linux系统:CentOS-6.7 系统镜像:CentOS-6.7-x86_64-bin-DVD1.iso、CentOS-6.7-x86_64-bin-DV...

    CoderJed
  • Linux用户管理常用命令

    以"root:x:0:0:root:/root:/bin/bash"这一行为例,以":"为分隔符,说明每一列的意义

    CoderJed
  • Linux中安装MySQL

    CoderJed
  • linux基础学习整理

    未来sky
  • 《调教命令行04》触碰Linux的每个角落(长文)

    想要了解一个人,就先要了解他的灵魂。可是别说是灵魂了,就连一个真心的笑容,你在生活中也很难见到。更多的是菩萨手段,修罗心肠。很多人喜欢孩子的原因,就是因为他们悲...

    xjjdog
  • Linux设置本地yum源

    linux系统:CentOS-6.7 系统镜像:CentOS-6.7-x86_64-bin-DVD1.iso、CentOS-6.7-x86_64-bin-DV...

    CoderJed
  • linux每日命令(29):chown命令

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管...

    用户1214487
  • leetcode449. Serialize and Deserialize BST

    将二叉搜索树序列化和反序列化,序列化是指将树用字符串的形式表示,反序列化是指将字符串形式的树还原成原来的样子。

    眯眯眼的猫头鹰
  • Centos7下ELK+Redis日志分析平台的集群环境部署记录

    之前的文档介绍了ELK架构的基础知识(推荐参考下http://blog.oldboyedu.com/elk/),日志集中分析系统的实施方案: - ELK+Red...

    洗尽了浮华
  • OpenStack集群部署—Neutron计算节点

    院长技术

扫码关注云+社区

领取腾讯云代金券