文件和目录管理
pwd 命令
ls 命令
cd 命令
mkdir 命令
touch 命令
tree 命令
tree
命令功能是以树形结构列出指定目录下的所有内容,包括所有文件、子目录及子目录里的目录和文件
不带任何参数执行 tree
命令
> tree # <== 显示当前目录的结构
. # <== . 以当前目录为起点
├── anaconda-ks.cfg
├── install.log
└── install.log.syslog
0 directories, 3 files
以树形结构显示目录下的所有内容(-a
的功能)
> tree -a # <== 带 -a 参数显示所有文件(包括隐藏文件)
.
├── anaconda-ks.cfg
├── .bash_history # <== 在 Linux 系统中,以 . 点号开头的文件为隐藏文件,默认不显示
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
├── install.log
# ...
只列出根目录下第一层目录的结构(-L
的功能)
只显示所有的目录,但不显示文件(-d
的功能)
# tree -d /etc/ # <== -d 参数表示只显示目录
/etc/
├── systemd
│ ├── system
│ │ ├── basic.target.wants
│ │ ├── getty.target.wants
│ │ ├── graphical.target.wants
│ │ ├── multi-user.target.wants
│ │ ├── sockets.target.wants
│ │ ├── sysinit.target.wants
│ │ └── timers.target.wants
│ └── user
│ ├── basic.target.wants
│ ├── pipewire.service.wants
│ ├── sockets.target.wants
│ └── timers.target.wants
# ...
用 tree 命令来区分目录和文件的方法(-F
的功能)
> tree -L 1 -F /boot/ #<==使用-F参数会在目录后面添加“/”,方便区分目录
/boot
├── System.map-5.14.0-162.12.1.el9_1.0.2.x86_64
├── System.map-5.14.0-162.6.1.el9_1.x86_64
├── config-5.14.0-162.12.1.el9_1.0.2.x86_64
├── config-5.14.0-162.6.1.el9_1.x86_64
├── efi/
│ ├── EFI/
│ │ ├── BOOT/
│ │ │ ├── BOOTX64.EFI*
│ │ │ └── fbx64.efi*
# ...
忽略某个文件夹的内容(-I
的功能)
-I
命令允许你使用正则匹配来排除掉你不想看到的文件夹
也可以使用 |
同时排除掉多个文件夹:
最后一个使用到正则匹配,这样以 test_
开头的文件夹都不会被显示出来
file 命令
file 命令可以使用可执行文件作为参数来查看系统架构类型
> file /bin/bash
bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3d209334cb8d53ee4b03e75a1388b6d4a272f10a, for GNU/Linux 3.2.0, stripped
find 命令
实例:空目录处理
在 Linux 中查找空目录,可以使用 find 命令,再结合其 -empty
选项
type 选项后面跟 d 参数是搜索目录,将 d 改为 f 即可搜索文件
使用 find 命令删除空文件和目录
使用 find 命令检索出结果,然后再使用 -delete
选项即可将其删除。比如,删除空目录,可参照如下命令:
使用 xargs 和 find -exec 命令删除空文件和目录
find 和 exec 命令的结合可以让我们执行自定义操作,比如对搜索结果运行脚本和执行程序
而 xargs 可以从标准输入中获取输入,甚至可以将另一个命令的输出视为输入,并将其用作命令
使用该命令删除空文件,如下所示:
删除空的目录,可使用如下命令:
使用 xargs 命令的方式,如下所示:
然后,对上述命令做稍微的调整,可删除空文件: