Unix 和 Linux 目录管理命令
我们使用 DNS(域名系统)在域名和 IP 地址之间进行转换。例如,在 Linux 和类 Unix 系统上,可以使用dig 命令/ host 命令进行 DNS 查找。同样,Linux 文件是通过文件名而不是inode 编号来引用的。那么目录的用途是什么?您可以根据用途对文件进行分组。例如,所有配置文件都存储在 /etc/ 目录下。因此,目录的目的是在文件名和其关联的 inode 编号之间建立联系。在每个目录中,您会发现两个名为的子目录:
- .(单个句点)– 当前目录
- ..(双句号)– 指向上一个目录的指针,即我现在所在目录的上一个目录。..除了根目录外,每个目录中都会出现“ ”。 “ ..”始终指向与“ .”相同的 inode
使用 ls 命令列出 Linux 或 Unix 上的文件和目录,包括 . 和 .. 目录:
ls -la
使用 ls 命令在 Linux 或类 Unix 系统上查找 . 和 .. 目录
目录
包含在另一个目录中的目录称为子目录。目录最后形成树结构。使用tree 命令查看目录树结构:
$ tree /etc | less
使用 tree 命令以类似格式的结构列出目录的内容
- 单个目录下子目录数量上限为32768个
- 单个目录中的文件数量“软”上限约为 10-15k
- Ext4 和其他现代 Linux 文件系统允许无限数量的子目录
但是根据 ext2/3 文件系统的官方文档指出,使用散列目录索引(正在开发中)可以在单个目录中容纳 100k-1M+ 个文件而不会出现性能问题。以下是我最喜欢的两个与目录相关的bash shell 别名命令:
alias ..='cd ..'
alias d='ls -l | grep -E "^d"'
Unix 和 Linux 目录管理命令
用于处理目录和文件的标准 Linux/Unix 命令列表:
命令 | 描述 | 示例 |
---|---|---|
mkdir 命令 | 创建新目录 | mkdir dir1 |
rmdir 命令 | 如果指定目录已为空,则删除该目录 | rmdir dir1 |
cd 命令 | 更改当前目录 | cd /etc/ |
cd .. 命令 | 返回上一目录 | cd .. |
pwd 命令 | 显示当前/工作目录的名称 | pwd |
cd 命令 | cd 不带任何参数更改到用户的主目录 | cd |
mv 命令 | 将源复制到目标然后删除原始源 | mv dir1 dir2 |
cp 命令 | 将源复制到目标 | cp -r dir1 /path/to/dir2 |
rm 命令 | 从文件系统中删除指定的文件。除非使用选项 -r,否则 rm 不会删除目录 | rm file1 rm -r dir1 |
ln 命令 | 创建从源到目标的内部链接 | ln -s /etc/hosts /tmp/link |
chown 命令 | 将文件所有权转移给具有指定用户名的用户 | chown userName file |
chgrp 命令 | 将给定文件的组所有权转移到具有指定组名的组 | chgrp dir1 |
chmod 命令 | 更改访问权限 | chmod 0444 dir1 |
定位命令 | location 命令可以查找指定文件位于哪个目录 | locate file1 |
查找命令 | 在给定目录中搜索文件 | find $HOME -name "hello.c" |
文件命令 | 检测指定文件的内容 | file /etc/resolv.conf |
cat 命令 | 显示文件的内容 | cat data.txt |
更少的命令 | 查看指定文件的内容 | less resume.txt |
更多命令 | 这是一个用于逐屏翻阅文本的过滤器 | more /etc/hosts |
grep 命令 | 在指定文件中查找特定搜索字符串 | grep "nameserver" /etc/resolv.conf |
egrep 命令 | 与 grep 相同但支持扩展正则表达式 | egrep -i 'err|cri|warn|' /var/log/messages |
diff 命令 | 比较任意两个文件的内容 | diff old.c new.c |
我相信大家都知道与目录和文件管理相关的基本命令。单击左栏的链接可了解有关每个命令及其用法的更多信息。
本条目是Linux 或 Unix 文件系统概念概述教程系列中的第2篇(共9 篇)。继续阅读本系列的其余部分: