跳转至

文件和目录管理

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 的功能)

> tree -L 1 /      # <== -L 参数后接数字,表示查看目录的层数,不带 -L 选项默认显示所有层数
/
├── bin
├── boot
# ...

只显示所有的目录,但不显示文件(-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 命令允许你使用正则匹配来排除掉你不想看到的文件夹

tree -I "node_modules"

也可以使用 | 同时排除掉多个文件夹:

tree -I "node_modules|cache|test_*"

最后一个使用到正则匹配,这样以 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 选项

find /root -type d -empty

type 选项后面跟 d 参数是搜索目录,将 d 改为 f 即可搜索文件

find /root -type f -empty

使用 find 命令删除空文件和目录

使用 find 命令检索出结果,然后再使用 -delete 选项即可将其删除。比如,删除空目录,可参照如下命令:

find /root -empty -type d -delete

使用 xargs 和 find -exec 命令删除空文件和目录

find 和 exec 命令的结合可以让我们执行自定义操作,比如对搜索结果运行脚本和执行程序

而 xargs 可以从标准输入中获取输入,甚至可以将另一个命令的输出视为输入,并将其用作命令

使用该命令删除空文件,如下所示:

find /root -type f -empty -print0 -exec rm -v "{}" \;

删除空的目录,可使用如下命令:

find /root -type d -empty -print0 -exec rmdir -v "{}" \;

使用 xargs 命令的方式,如下所示:

find /root -type d -empty -print0 | xargs -0 -I {} /bin/rmdir "{}"

然后,对上述命令做稍微的调整,可删除空文件:

find /root -type f -empty -print0 | xargs -0 -I {} /bin/rm "{}"