核心文件目录命令概览

命令 主要功能 使用频率
pwd 显示当前工作目录 ⭐⭐⭐⭐⭐
cd 切换目录 ⭐⭐⭐⭐⭐
ls 列出目录内容 ⭐⭐⭐⭐⭐
find 查找文件 ⭐⭐⭐⭐
mkdir 创建目录 ⭐⭐⭐⭐
rm 删除文件/目录 ⭐⭐⭐⭐
touch 创建文件/更新时间戳 ⭐⭐⭐
mv 移动/重命名文件 ⭐⭐⭐
cp 复制文件 ⭐⭐⭐
stat 显示文件元数据 ⭐⭐

pwd 命令

功能说明

显示当前工作目录的绝对路径。

基本用法

1
2
3
pwd
#输出示例
/home/user/documents

cd 命令

功能说明

切换当前工作目录。

常用用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 切换到根目录
cd /

# 切换到指定目录
cd /etc

# 切换到当前用户家目录
cd ~
cd

# 回到上次离开的目录
cd -

# 返回上级目录
cd ..

# 返回上两级目录
cd ../..

# 切换到当前目录下的子目录
cd ./dir01

实用技巧

1
2
3
4
5
# 快速返回家目录
cd

# 在多个目录间快速切换
cd - # 在最近两个目录间切换

ls 命令

功能说明

列出目录内容和文件信息。

基本语法

1
ls [选项] [文件/目录]

常用选项

1
2
3
4
5
6
-l    # 详细列表格式
-a # 显示所有文件(包括隐藏文件)
-h # 人类可读的文件大小
-d # 仅显示目录本身信息
-Z # 显示SELinux安全上下文
-R # 递归显示子目录

详细输出解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
drwxr-xr-x. 2 centos centos 6 Nov 22 17:40 桌面

#第一位:文件类型

d:目录

-:普通文件

l:符号链接

b:块设备文件

c:字符设备文件


#权限位(2-10位):

rwx:所有者权限(读/写/执行)

r-x:所属组权限

r-x:其他用户权限


链接数:目录表示子目录数,文件表示硬链接数

所有者:文件所属用户

所属组:文件所属用户组

文件大小:字节单位

修改时间:最后修改日期

文件名:文件或目录名称

实用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看详细信息
ls -l

# 查看目录本身信息
ls -ld /etc

# 显示SELinux标签
ls -lZ /etc/passwd

# 显示隐藏文件
ls -la ~

# 递归列出所有文件
ls -R /home

find 命令

功能说明

强大的文件查找工具,支持多种条件搜索。

基本语法

1
find [路径] [表达式]

常用表达式

1
2
3
4
5
6
7
8
-name pattern    # 按文件名匹配
-iname pattern # 忽略大小写按文件名匹配
-type type # 按文件类型查找
-mtime n # 按修改时间查找
-size n # 按文件大小查找
-user user # 按文件所有者查找
-perm mode # 按权限查找
-exec command # 对找到的文件执行命令

时间参数详解

选项 时间范围 说明 示例(今天为2024-01-20)
-mtime +7 ≥8天前 修改时间 ≤ (now - 8*24h) 匹配2024-01-12及更早
-mtime 7 刚好7天 修改时间 = (now - 7*24h) 仅匹配2024-01-13当天
-mtime -7 <7天内 修改时间 > (now - 7*24h) 匹配2024-01-14至今

实用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查找当前目录下所有.txt文件
find . -name "*.txt"

# 查找/home下最近7天修改的文件
find /home -mtime -7

# 查找/var下大于1MB的文件
find /var -size +1M

# 查找根目录下块设备文件并复制到/tmp
find / -type b -exec cp -a {} /tmp \;

# 查找并删除7天前的日志文件
find /var/log -name "*.log" -mtime +7 -exec rm -f {} \;

# 查找权限为755的目录
find /usr -type d -perm 755

# 查找属于用户centos的文件
find /home -user centos

mkdir 命令

功能说明

创建新目录。

基本语法

1
mkdir [选项] 目录名

常用选项

1
2
-p    # 递归创建多级目录
-v # 显示创建过程

实用示例

1
2
3
4
5
6
7
8
9
10
11
# 创建单个目录
mkdir dirname

# 递归创建多级目录
mkdir -p dir01/dir001/dir002

# 创建目录并显示过程
mkdir -pv project/{src,bin,doc}

# 创建带权限的目录
mkdir -m 755 shared_dir

rmdir 命令

功能说明

删除空目录。

基本语法

1
rmdir [选项] 目录名

注意事项

  • 只能删除空目录
  • 目录非空时删除失败
    实用示例
    1
    2
    3
    4
    5
    # 删除空目录
    rmdir empty_dir

    # 忽略非空目录警告
    rmdir --ignore-fail-on-non-empty dir

rm 命令

功能说明

删除文件或目录。

基本语法

1
rm [选项] 文件/目录

常用选项

1
2
3
4
-r, -R    # 递归删除目录
-f # 强制删除,不提示
-i # 交互式删除,每次确认
-v # 显示删除过程

重要警告

  • 慎用 rm -rf,特别是根目录,可能导致系统损坏。
    实用示例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # 删除文件
    rm file.txt

    # 交互式删除
    rm -i important_file

    # 强制删除
    rm -f temp_file

    # 递归删除目录
    rm -r directory

    # 递归强制删除(危险!)
    rm -rf directory

    # 安全删除模式(推荐)
    rm -ri directory # 递归交互删除

touch 命令

功能说明

创建空文件或更新文件时间戳。

基本语法

1
touch [选项] 文件名

实用示例

1
2
3
4
5
6
7
8
9
10
11
# 创建空文件
touch newfile.txt

# 更新文件时间戳
touch existing_file

# 批量创建文件
touch file{1..5}.txt

# 创建带特定时间的文件
touch -t 202401201200.00 timestamp_file

mv 命令

功能说明

移动或重命名文件和目录。

基本语法

1
mv [选项] 源文件 目标文件

实用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 移动文件到目录
mv file1 /tmp/

# 重命名文件
mv oldname newname

# 移动目录
mv ~/dir01 /tmp/

# 重命名目录
mv /tmp/dir01 /tmp/newdir

# 交互式移动(覆盖前确认)
mv -i file1 file2

# 备份已存在文件
mv -b file1 file2 # 创建file2~备份

cp 命令

功能说明

复制文件和目录。

基本语法

1
cp [选项] 源文件 目标文件

常用选项

1
2
3
4
5
-a    # 归档模式,保留所有属性
-r # 递归复制目录
-i # 交互式复制,覆盖前确认
-v # 显示复制过程
-p # 保留权限属性

实用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 复制文件
cp file1 /tmp/

# 保留属性复制
cp -a config.yml /backup/

# 递归复制目录
cp -r project/ /backup/

# 交互式复制
cp -i important_file backup/

# 显示复制过程
cp -rv source/ destination/

stat 命令

功能说明

显示文件或文件系统的详细元数据信息。

基本语法

1
stat [选项] 文件/目录

输出信息解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
stat anaconda-ks.cfg

输出包含:

文件:文件名

大小:文件大小(字节)

块:占用的磁盘块数

IO 块:文件系统块大小

设备:设备号

Inode:索引节点号

硬链接:硬链接数量

权限:文件权限和类型

Uid/Gid:所有者和组ID

环境:SELinux上下文

访问时间:最后访问时间

修改时间:最后修改时间

状态改变时间:最后状态改变时间

type 命令

功能说明

显示命令的类型信息。

基本语法

1
type 命令名

命令类型说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 别名
type ls # ls 是 `ls --color=auto' 的别名

# Shell关键字
type for # for 是 shell 关键字

# 内建命令
type pwd # pwd 是 shell 内嵌

# 外部命令
type yum # yum 是 /usr/bin/yum

# 哈希命令
type watch # watch 已被哈希 (/usr/bin/watch)

file 命令

功能说明

识别文件类型,不依赖文件扩展名。

基本语法

1
file [选项] 文件...

常用选项

1
2
3
-L    # 跟随符号链接
-i # 输出MIME类型
-z # 查看压缩文件内容

实用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看压缩文件类型
file archive.tar.gz

# 查看可执行文件类型
file /usr/bin/ls

# 查看目录下所有文件类型
file dir/*

# 查看符号链接指向的文件类型
file -L /etc/pam.d/smartcard-auth

# 输出MIME类型
file -i image.jpg

which 命令

功能说明

在PATH环境变量指定的路径中查找命令位置。

基本语法

1
which 命令名

实用示例

1
2
3
4
5
6
7
# 查找命令位置
which ls # 显示别名和实际路径
which yum # /usr/bin/yum
which python # /usr/bin/python

# 查找所有匹配项
which -a java # 显示所有java命令路径

whereis 命令

功能说明

定位命令的二进制文件、源代码和手册页位置。

基本语法

1
whereis [选项] 命令名

实用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
# 查找命令相关文件
whereis yum # 二进制、配置、手册页
whereis pwd # 二进制文件和手册页
whereis systemctl # 系统控制命令位置

# 只查找二进制文件
whereis -b ls

# 只查找手册页
whereis -m ls

# 只查找源代码
whereis -s command

命令使用技巧总结

安全操作建议

  • 删除前备份:重要文件删除前先备份

  • 使用交互模式:-i 选项避免误删

  • 测试命令:先使用 echo 测试find的-exec参数

  • 权限检查:操作前检查文件权限

效率提升技巧

  • 命令组合:结合通配符和管道

  • 别名设置:为常用命令设置别名

  • 历史命令:使用 history 和 ! 快速执行

  • Tab补全:充分利用命令行自动补全

故障排查

  • 权限问题:使用 ls -l 检查文件权限

  • 路径问题:使用 pwd 确认当前位置

  • 命令不存在:使用 which 或 whereis 查找命令

  • 文件类型:使用 file 确认文件格式