前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >008.Linux文件目录管理命令基础

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

作者头像
CoderJed
发布2020-04-10 16:17:36
7940
发布2020-04-10 16:17:36
举报
文章被收录于专栏:Jed的技术阶梯Jed的技术阶梯

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

代码语言:javascript
复制
# 显示当前工作目录的绝对路径
[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:切换目录

代码语言:javascript
复制
# 切换到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:以树型结构显示目录下的内容

代码语言:javascript
复制
# 安装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:创建目录

代码语言:javascript
复制
# 创建目录,如果目录已经存在,则给出提示
[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:创建文件或者更该文件时间戳

代码语言:javascript
复制
# 如果文件不存在,则创建该文件,否则更新该文件的时间戳
[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命令使用
代码语言:javascript
复制
# 显示所有文件和目录
[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命令起别名
代码语言:javascript
复制
# 查看系统默认的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命令使用
代码语言:javascript
复制
# 将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选项的方法
代码语言:javascript
复制
# 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:移动或者重命名文件

代码语言:javascript
复制
# 将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:删除文件或者目录

代码语言:javascript
复制
# 删除文件
[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 /将会给出警告信息
代码语言:javascript
复制
[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/ *,而且在/目录下,同样会删除系统
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. pwd:显示当前所在的位置
  • 2. cd:切换目录
  • 3. tree:以树型结构显示目录下的内容
  • 4. mkdir:创建目录
  • 5. touch:创建文件或者更该文件时间戳
  • 6. ls:显示目录下内容及属性信息
  • 7. cp:复制文件或目录
  • 8. mv:移动或者重命名文件
  • 9. rm:删除文件或者目录
  • 10. 危险操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档