马哥教育 Linux SRE 学习笔记
文件操作命令
显示当前工作目录
每个shell和系统进程都有一个当前的工作目录 CWD:current work directory
显示当前shell CWD的绝对路径
pwd命令: printing working directory
- -P 显示真实物理路径
- -L 显示链接路径(默认)
范例:
[root@rocky8 ~]$pwd
/root
[root@rocky8 ~]$cd /opt/
[root@rocky8 opt]$pwd
/opt
[root@rocky8 ~]$cd /usr/bin/
[root@rocky8 bin]$pwd -P
/usr/bin
绝对和相对路径
-
绝对路径
以正斜杠/ 即根目录开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
-
相对路径名
-
不以斜线开始
-
一般情况下,是指相对于当前工作目录的路径,特殊场景下,是相对于某目录的位置 可以作为一个简短的形式指定一个文件名
基名:basename,只取文件名而不要路径
目录名:dirname,只取路径,不要文件名
范例:
[root@rocky8 ~]$basename /etc/sysconfig/network
network[root@rocky8 ~]$dirname /etc/sysconfig/network
/etc/sysconfig[root@rocky8 ~]$dirname /etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts
[root@rocky8 ~]$basename /etc/sysconfig/network-scripts/ifcfg-ens33
ifcfg-ens33
更改目录
命令 cd : change directory 改变目录
选项:-P 切换至物理路径,而非软链接目录
可以使用绝对或相对路径
- 切换至父目录: cd …
- 切换至当前用户主目录: cd
- 切换至以前的工作目录: cd -
范例:
[root@rocky8 ~]$cd /etc/sysconfig/
[root@rocky8 sysconfig]$pwd
/etc/sysconfig
[root@rocky8 sysconfig]$cd ../../usr
[root@rocky8 usr]$pwd
/usr
[root@rocky8 usr]$cd /bin
[root@rocky8 bin]$pwd
/bin
[root@rocky8 bin]$cd -P /bin
[root@rocky8 bin]$pwd
/usr/bin
相关的环境变量:
- PWD:当前目录路径
- OLDPWD:上一次目录路径
范例:
[root@rocky8 ~]$echo $OLDPWD
/usr/bin
[root@rocky8 ~]$cd -
/usr/bin
[root@rocky8 bin]$pwd
/usr/bin
列出目录内容
ls 命令可以列出当前目录的内容或指定目录
用法:
ls [options] [files_or_dirs]
常见选项:
- -a 包含隐藏文件
- -l 显示额外的信息
- R 目录递归
- -ld 目录和符号链接信息
- -1 文件分行显示
- -S 按从大到小排序
- -t 按mtime排序
- -u 配合-t选项,显示并按atime从新到旧排序
- -U 按目录存放顺序显示
- -X 按文件后缀排序
- -F 对不同类型文件显示时附加不同的符号:*/=>@|
- -C 文件多时,以多列的方式显示文件,默认是一列(标准输出)
说明:
ls 查看不同后缀文件时的颜色由 /etc/DIR_COLORS 和@LS_COLORS变量定义
ls -l 看到文件的大小,不一定是实际文件真正占用空间的大小
范例:
[root@rocky8 bin]$cd /usr/
[root@rocky8 usr]$ls -a
. .. bin games include lib lib64 libexec local sbin share src tmp[root@rocky8 usr]$ls -l
total 168
dr-xr-xr-x. 2 root root 36864 May 24 13:18 bin
drwxr-xr-x. 2 root root 6 Oct 11 2021 games
drwxr-xr-x. 47 root root 8192 May 20 23:13 include
dr-xr-xr-x. 39 root root 4096 May 20 23:13 lib
dr-xr-xr-x. 57 root root 40960 May 20 23:13 lib64
drwxr-xr-x. 31 root root 4096 May 20 23:13 libexec
drwxr-xr-x. 12 root root 131 Jul 11 2023 local
dr-xr-xr-x. 2 root root 16384 May 20 23:13 sbin
drwxr-xr-x. 117 root root 4096 May 24 13:18 share
drwxr-xr-x. 4 root root 34 Jul 11 2023 src
lrwxrwxrwx. 1 root root 10 Oct 11 2021 tmp -> ../var/tmp[root@rocky8 usr]$ls -R
[root@rocky8 usr]$ls -ld
drwxr-xr-x. 12 root root 144 Jul 11 2023 .[root@rocky8 usr]$ls -1
bin
games
include
lib
lib64
libexec
local
sbin
share
src
tmp[root@rocky8 usr]$ls -S
lib64 bin sbin include lib libexec share local src tmp games[root@rocky8 usr]$ls -t
share bin include libexec lib64 sbin lib src local games tmp[root@rocky8 usr]$ls -tu
lib64 lib tmp bin sbin include libexec local share games src[root@rocky8 usr]$ls -U
bin sbin lib lib64 share games include libexec local src tmp[root@rocky8 usr]$ls -X
bin games include lib lib64 libexec local sbin share src tmp
查看文件状态 stat
文件相关信息:metadata, data
每个文件有三个时间戳:
- access time 访问时间,atime,读取文件内容
- modify time 修改时间,mtime,改变文件内容(数据)
- change time 改变时间,ctime,元数据发生改变
[root@rocky8 ~]$stat /etc/passwdFile: /etc/passwdSize: 1289 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 135164929 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2024-05-25 13:16:21.235016434 +0800
Modify: 2024-05-20 23:13:31.169145534 +0800
Change: 2024-05-20 23:13:31.170145544 +0800Birth: 2024-05-20 23:13:31.169145534 +0800
确定文件内容
文件可以包含多种类型的数据,使用file命令检查文件的类型,然后确定适当的打开命令或应用程序使 用
格式:
file [options] <filename>...
常用选项:
- -b 列出文件辨识结果时,不显示文件名称
- -f filelist 列出文件filelist中文件名的文件类型
- -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
- -L 查看对应软链接对应文件的文件类型
- –help 显示命令在线帮助
范例:windows的文本格式和Linux的文本格式的区别
#在Windows创建文本文件win.txt写入a、b、c,然后上传到Linux中
#在Linux创建Linux.txt,写入a、b、c
[root@rocky8 ~]$touch linux.txt
[root@rocky8 ~]$nano linux.txt
[root@rocky8 ~]$ls
anaconda-ks.cfg install_nginx.sh linux.txt win.txt[root@rocky8 ~]$cat linux.txt
a
b
c
[root@rocky8 ~]$cat win.txt
a
b
c[root@rocky8 ~]$file win.txt linux.txt
win.txt: ASCII text, with CRLF line terminators
linux.txt: ASCII text
[root@rocky8 ~]$hexdump -C linux.txt
00000000 61 0a 62 0a 63 0a |a.b.c.|
00000006
[root@rocky8 ~]$hexdump -C win.txt
00000000 61 0d 0a 62 0d 0a 63 |a..b..c|
00000007#安装转换工具
[root@rocky8 ~]$dnf install dos2unix -y
#将Windows的文本格式转换成的Linux文本格式
[root@rocky8 ~]$dos2unix win.txt
dos2unix: converting file win.txt to Unix format...
[root@rocky8 ~]$file win.txt
win.txt: ASCII text#将Linux的文本格式转换成Windows的文本格式
[root@rocky8 ~]$unix2dos win.txt
unix2dos: converting file win.txt to DOS format...
[root@rocky8 ~]$file win.txt
win.txt: ASCII text, with CRLF line terminators
文件通配符模式 wildcard pattern
文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件
通配符采有特定的符号,表示特定的含义,此特符号称为元 meta 字符
常见的通配符如下:
* 匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
? 匹配任何单个字符,一个汉字也算一个字符
~ 当前用户家目录
~mage 用户mage家目录
[0-9] 匹配数字范围
[a-z] 一个字母
[A-Z] 一个字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
[^a-z] 匹配列表中的所有字符以外的字符
. 和 ~+ 当前工作目录
~- 前一个工作目录
另外还有在Linux系统中预定义的字符类表示法如下:man 7 glob
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,表示 a-z
[:upper:]: 任意大写字母,表示 A-Z
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
范例:
[root@rocky8 ~]$cd /root/
[root@rocky8 ~]$ll -/linux.txt
ls: invalid option -- '/'
Try 'ls --help' for more information.
[root@rocky8 ~]$ll ~-/linux.txt
-rw-r--r-- 1 root root 6 May 25 14:08 /root/linux.txt
范例: [ ] 和 { }
[root@rocky8 opt]$touch f{3..5}.txt
[root@rocky8 opt]$ll f{1..5}.txt
ls: cannot access 'f1.txt': No such file or directory
ls: cannot access 'f2.txt': No such file or directory
-rw-r--r-- 1 root root 0 May 26 13:14 f3.txt
-rw-r--r-- 1 root root 0 May 26 13:14 f4.txt
-rw-r--r-- 1 root root 0 May 26 13:14 f5.txt[root@rocky8 opt]$ll f[1-5].txt
-rw-r--r-- 1 root root 0 May 26 13:14 f3.txt
-rw-r--r-- 1 root root 0 May 26 13:14 f4.txt
-rw-r--r-- 1 root root 0 May 26 13:14 f5.txt[root@rocky8 opt]$ touch file{a..z}.txt file{A..Z}.txt
[root@rocky8 opt]$ls file[a-c].txt
filea.txt fileA.txt fileb.txt fileB.txt filec.txt
[root@rocky8 opt]$ls file[f-k].txt
filef.txt fileg.txt fileh.txt filei.txt filej.txt filek.txt
fileF.txt fileG.txt fileH.txt fileI.txt fileJ.txt
[root@rocky8 opt]$ls file[cxz].txt
filec.txt filex.txt filez.txt
[root@rocky8 opt]$ls file[^cxz].txt
filea.txt filee.txt fileH.txt filel.txt fileO.txt files.txt fileV.txt
fileA.txt fileE.txt filei.txt fileL.txt filep.txt fileS.txt filew.txt
fileb.txt filef.txt fileI.txt filem.txt fileP.txt filet.txt fileW.txt
fileB.txt fileF.txt filej.txt fileM.txt fileq.txt fileT.txt fileX.txt
fileC.txt fileg.txt fileJ.txt filen.txt fileQ.txt fileu.txt filey.txt
filed.txt fileG.txt filek.txt fileN.txt filer.txt fileU.txt fileY.txt
fileD.txt fileh.txt fileK.txt fileo.txt fileR.txt filev.txt fileZ.txt
范例:
[root@rocky8 opt]$ls file[:lower:].txt
filee.txt filel.txt fileo.txt filer.txt filew.txt
[root@rocky8 opt]$ls file[[:lower:]].txt
filea.txt filee.txt filei.txt filem.txt fileq.txt fileu.txt filey.txt
fileb.txt filef.txt filej.txt filen.txt filer.txt filev.txt filez.txt
filec.txt fileg.txt filek.txt fileo.txt files.txt filew.txt
filed.txt fileh.txt filel.txt filep.txt filet.txt filex.txt
范例:比较有无*的功能区别
[root@rocky8 opt]$ls -a *
f3.txt fileC.txt fileG.txt fileK.txt fileO.txt fileS.txt fileW.txt
f4.txt filed.txt fileh.txt filel.txt filep.txt filet.txt filex.txt
f5.txt fileD.txt fileH.txt fileL.txt fileP.txt fileT.txt fileX.txt
filea.txt filee.txt filei.txt filem.txt fileq.txt fileu.txt filey.txt
fileA.txt fileE.txt fileI.txt fileM.txt fileQ.txt fileU.txt fileY.txt
fileb.txt filef.txt filej.txt filen.txt filer.txt filev.txt filez.txt
fileB.txt fileF.txt fileJ.txt fileN.txt fileR.txt fileV.txt fileZ.txt
filec.txt fileg.txt filek.txt fileo.txt files.txt filew.txt
范例:
[root@rocky8 opt]$ls -d /etc/*/
/etc/alternatives/ /etc/kdump/ /etc/rc4.d/
/etc/asciidoc/ /etc/kernel/ /etc/rc5.d/
/etc/audit/ /etc/krb5.conf.d/ /etc/rc6.d/
/etc/authselect/ /etc/ld.so.conf.d/ /etc/rc.d/
/etc/auto.master.d/ /etc/libblockdev/ /etc/redhat-lsb/
/etc/bash_completion.d/ /etc/libibverbs.d/ /etc/rhsm/
/etc/binfmt.d/ /etc/libnl/ /etc/rpm/
/etc/chkconfig.d/ /etc/libpaper.d/ /etc/rsyslog.d/
/etc/cifs-utils/ /etc/libreport/ /etc/rwtab.d/
/etc/cron.d/ /etc/libssh/ /etc/sasl2/
/etc/cron.daily/ /etc/logrotate.d/ /etc/security/
/etc/cron.hourly/ /etc/lsb-release.d/ /etc/selinux/
/etc/cron.monthly/ /etc/lvm/ /etc/sgml/
/etc/cron.weekly/ /etc/microcode_ctl/ /etc/skel/
/etc/crypto-policies/ /etc/modprobe.d/ /etc/ssh/
/etc/dbus-1/ /etc/modules-load.d/ /etc/ssl/
/etc/default/ /etc/NetworkManager/ /etc/sssd/
/etc/depmod.d/ /etc/nftables/ /etc/sudoers.d/
/etc/dhcp/ /etc/openldap/ /etc/sysconfig/
/etc/dnf/ /etc/opt/ /etc/sysctl.d/
/etc/dracut.conf.d/ /etc/pam.d/ /etc/systemd/
/etc/firewalld/ /etc/pesign/ /etc/terminfo/
/etc/fonts/ /etc/pkcs11/ /etc/tmpfiles.d/
/etc/gcrypt/ /etc/pki/ /etc/tuned/
/etc/gdbinit.d/ /etc/plymouth/ /etc/udev/
/etc/gnupg/ /etc/pm/ /etc/udisks2/
/etc/groff/ /etc/polkit-1/ /etc/unbound/
/etc/grub.d/ /etc/popt.d/ /etc/vmware-tools/
/etc/gss/ /etc/postfix/ /etc/X11/
/etc/init.d/ /etc/profile.d/ /etc/xdg/
/etc/iproute2/ /etc/rc0.d/ /etc/xinetd.d/
/etc/java/ /etc/rc1.d/ /etc/xml/
/etc/jvm/ /etc/rc2.d/ /etc/yum/
/etc/jvm-commmon/ /etc/rc3.d/ /etc/yum.repos.d/
[root@rocky8 opt]$l.
. ..[root@rocky8 opt]$touch file*.log
[root@rocky8 opt]$touch file1.log
[root@rocky8 opt]$ls file*.logfile1.log 'file*.log'
[root@rocky8 opt]$ls 'file*.log'
'file*.log'
创建空文件和刷新时间
touch命令可以用来创建空文件或刷新文件的时间
格式:
touch [OPTION]... FILE...
选项说明:
- -a 仅改变 atime和ctime
- -m 仅改变 mtime和ctime
- -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
- -c 如果文件不存在,则不予创建
范例:
[root@rocky8 opt]$touch f1.txt
[root@rocky8 opt]$ll
total 0
-rw-r--r-- 1 root root 0 May 26 13:47 f1.txt
[root@rocky8 opt]$ll /etc/issue
-rw-r--r--. 1 root root 23 Mar 30 2022 /etc/issue
[root@rocky8 opt]$touch /etc/issue
[root@rocky8 opt]$ll /etc/issue
-rw-r--r--. 1 root root 23 May 26 13:48 /etc/issue[root@rocky8 opt]$stat /etc/issueFile: /etc/issueSize: 23 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 134301900 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2024-05-26 13:48:06.637382517 +0800
Modify: 2024-05-26 13:48:06.637382517 +0800
Change: 2024-05-26 13:48:06.637382517 +0800Birth: 2023-07-11 17:41:16.345230925 +0800[root@rocky8 opt]$date
Sun May 26 13:48:56 CST 2024
[root@rocky8 opt]$touch `date -d "-1 day" +%F_%T`.log
[root@rocky8 opt]$ls
2024-05-25_13:49:03.log f1.txt
[root@rocky8 opt]$touch $(date -d "1 year" +%F_%T).log
[root@rocky8 opt]$ls
2024-05-25_13:49:03.log 2025-05-26_13:49:25.log f1.txt
复制文件和目录
利用 cp(copy)命令可以实现文件或目录的复制
格式:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
常用选项
- -i 如果目标已存在,覆盖前提示是否覆盖
- -n 不覆盖,注意两者顺序
- -r, -R 递归复制目录及内部的所有内容
- -a 归档,相当于-dR --preserv=all,常用于备份功能
- -d --no-dereference --preserv=links 不复制原文件,只复制链接名
- –preserv[=ATTR_LIST
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all
- -p 等同–preserv=mode,ownership,timestamp
- -v --verbose
- -f --force
- -u --update 只复制源比目标更新文件或目标不存在的文件
- -b 目标存在,覆盖前先备份,默认形式为 filename~ ,只保留最近的一个备份
- –backup=numbered 目标存在,覆盖前先备份加数字后缀,形式为 filename.# ,可以保留多 个版本
范例:
[root@rocky8 opt]$cp /etc/issue /opt/issue_bak
[root@rocky8 opt]$ls
issue_bak
[root@rocky8 opt]$ll
total 8
-rw-r--r-- 1 root root 23 May 26 13:54 issue_bak
-rw-r--r-- 1 root root 23 May 26 13:48 issue_bak2[root@rocky8 opt]$cp /etc/sysconfig/ /opt/
cp: -r not specified; omitting directory '/etc/sysconfig/'
[root@rocky8 opt]$cp -r /etc/sysconfig/ /opt/
[root@rocky8 opt]$ll
total 12
-rw-r--r-- 1 root root 23 May 26 13:54 issue_bak
-rw-r--r-- 1 root root 23 May 26 13:48 issue_bak2
drwxr-xr-x 5 root root 4096 May 26 13:57 sysconfig
范例:复制时如果覆盖先备份再覆盖
[root@rocky8 opt]$cp -b /etc/motd /opt/issue_bak
cp: overwrite '/opt/issue_bak'? y
[root@rocky8 opt]$ll
total 16
-rw-r--r-- 1 root root 1167 May 26 13:59 issue_bak
-rw-r--r-- 1 root root 23 May 26 13:54 issue_bak~
-rw-r--r-- 1 root root 23 May 26 13:48 issue_bak2
drwxr-xr-x 5 root root 4096 May 26 13:57 sysconfig[root@rocky8 opt]$cp --backup=numbered /etc/fstab /opt/issue_bak
cp: overwrite '/opt/issue_bak'? y
[root@rocky8 opt]$cp --backup=numbered /etc/shadow /opt/issue_bak
cp: overwrite '/opt/issue_bak'? y
[root@rocky8 opt]$ll
total 24
---------- 1 root root 870 May 26 14:01 issue_bak
-rw-r--r-- 1 root root 23 May 26 13:54 issue_bak~
-rw-r--r-- 1 root root 1167 May 26 13:59 issue_bak.~1~
-rw-r--r-- 1 root root 713 May 26 14:00 issue_bak.~2~
-rw-r--r-- 1 root root 23 May 26 13:48 issue_bak2
drwxr-xr-x 5 root root 4096 May 26 13:57 sysconfig
练习:
1、每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程
[root@rocky8 data]$cp -av /etc/ /data/backup`date +%F`
[root@rocky8 data]$cp -av /etc/ /data/etc-`date +%F_%H-%M-%S`
[root@rocky8 ~]$cd /data/
[root@rocky8 data]$ls
backup2024-05-26 etc-2024-05-26_14-03-51
2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
[root@rocky8 data]$cp -a /root /data/rootdir
[root@rocky8 data]$ll
total 24
drwxr-xr-x. 97 root root 8192 May 26 13:19 backup2024-05-26
drwxr-xr-x. 97 root root 8192 May 26 13:19 etc-2024-05-26_14-03-51
dr-xr-x---. 3 root root 258 May 25 14:12 rootdir
移动和重命名文件
mv 命令可以实现文件或目录的移动和改名
同一分区移动数据,速度很快:数据位置没有变化
不同分区移动数据,速度相对慢:数据位置发生了变化
格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
- -i 交互式
- -f 强制
- -b 目标存在,覆盖前先备份
利用 rename 可以批量修改文件名
格式:
rename [options] <expression> <replacement> <file>...
范例:
[root@rocky8 data]$cd /opt/
[root@rocky8 opt]$ls
issue_bak issue_bak~ issue_bak.~1~ issue_bak.~2~ issue_bak2 sysconfig
[root@rocky8 opt]$cd /data
[root@rocky8 data]$ls
[root@rocky8 data]$
[root@rocky8 data]$mv /opt/issue_bak /data/
[root@rocky8 data]$ls
issue_bak
[root@rocky8 data]$cd /opt/
[root@rocky8 opt]$ls
issue_bak~ issue_bak.~1~ issue_bak.~2~ issue_bak2 sysconfig[root@rocky8 opt]$cp /data/issue_bak /opt/
[root@rocky8 opt]$ls
issue_bak issue_bak~ issue_bak.~1~ issue_bak.~2~ issue_bak2 sysconfig
[root@rocky8 opt]$mv -b /opt/issue_bak /data/
mv: overwrite '/data/issue_bak'? y#为所有的f开头包含conf的文件加上.bak后缀:
rename 'conf' 'conf.bak' f*
#去掉所有的bak后缀:
rename '.bak' '' *.bak
删除文件
使用 rm 命令可以删除文件和目录
注意:此命令非常危险,慎重使用,建议使用 mv 代替 rm
格式:
rm [OPTION]... FILE...
常用选项:
- -i 交互式
- -f 强制删除
- -r 递归
- –no-preserve-root 删除/
范例:
[root@rocky8 ~]$rm -rf /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe[root@rocky8 data]$touch f{1..5}
[root@rocky8 data]$ls
f1 f2 f3 f4 f5
[root@rocky8 data]$rm f1
rm: remove regular empty file 'f1'? y
[root@rocky8 data]$ls
f2 f3 f4 f5
[root@rocky8 data]$rm -f f2
[root@rocky8 data]$cd
[root@rocky8 ~]$rm -r /data/
rm: descend into directory '/data/'? y
rm: remove regular empty file '/data/f3'? y
rm: remove regular empty file '/data/f4'? y
rm: remove regular empty file '/data/f5'? y
rm: remove directory '/data/'? y
rm 虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安 全删除文件
目录操作
显示目录树 tree
常见选项:
- -d: 只显示目录
- -L level:指定显示的层级数目
- -P pattern: 只显示由指定wild-card pattern匹配到的路径
范例:
[root@rocky8 ~]$tree /tmp/
/tmp/
├── systemd-private-ea213e2cad0045218d109930153f008d-chronyd.service-1iJ1Cg
│ └── tmp
├── vmware-root_912-2697663791
├── vmware-root_919-4013854454
├── vmware-root_920-2731086625
├── vmware-root_927-3980167416
└── vmware-root_936-26975326817 directories, 0 files
创建目录 mkdir
常见选项:
- -p: 存在于不报错,且可自动创建所需的各目录
- -v: 显示详细信息
- -m MODE: 创建目录时直接指定权限
范例:
[root@rocky8 ~]$mkdir /test/name
mkdir: cannot create directory ‘/test/name’: No such file or directory
[root@rocky8 ~]$mkdir -p /test/name
删除空目录 rmdir
常见选项:
- -p 递归删除父空目录
- -v 显示详细信息
注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树
[root@rocky8 ~]$rmdir -pv /test/name/
rmdir: removing directory, '/test/name/'
rmdir: removing directory, '/test'
rmdir: removing directory, '/'
rmdir: failed to remove directory '/': Device or resource busy