2.3.2 目录与文件操作命令(保姆级详解)

目录

[1. pwd ------ 打印当前工作目录](#1. pwd —— 打印当前工作目录)

示例:

注意事项:

[2. cd ------ 切换目录](#2. cd —— 切换目录)

示例:

常用缩略用法:

[3. mkdir ------ 创建目录](#3. mkdir —— 创建目录)

常用选项:

示例1:创建单个目录

示例2:递归创建多级目录

注意事项:

[4. rmdir ------ 删除空目录](#4. rmdir —— 删除空目录)

示例:

注意事项:

[5. ls ------ 列出目录内容](#5. ls —— 列出目录内容)

常用选项:

示例1:基本列出

示例2:显示所有文件(包括隐藏文件)

示例3:显示详细信息

[示例4:组合选项 -la 或 -al](#示例4:组合选项 -la 或 -al)

示例5:人性化显示文件大小

示例6:查看命令帮助

[6. cp ------ 复制文件或目录](#6. cp —— 复制文件或目录)

常用选项:

示例1:复制文件

示例2:复制文件到另一个目录

示例3:复制目录

示例4:组合选项

注意事项:

[7. rm ------ 删除文件或目录](#7. rm —— 删除文件或目录)

常用选项:

示例1:删除文件

示例2:强制删除文件

示例3:删除目录及其所有内容

示例4:强制递归删除(常用组合)

注意事项:

[8. cat ------ 连接并显示文件内容](#8. cat —— 连接并显示文件内容)

示例1:显示单个文件

示例2:连接多个文件并显示

常用选项:

注意事项:

[9. touch ------ 创建空文件或更新文件时间戳](#9. touch —— 创建空文件或更新文件时间戳)

示例:创建空文件

常用选项:

注意事项:

[10. 绝对路径与相对路径](#10. 绝对路径与相对路径)

绝对路径

相对路径

路径使用技巧:


在Linux系统中,我们通过命令行来管理文件和目录。掌握这些基础命令是高效使用Linux的第一步。本节将详细介绍最常用的目录与文件操作命令,包括命令的英文来源、功能、格式、常用选项和示例,帮助你彻底理解并熟练运用。


1. pwd ------ 打印当前工作目录

  • 英文来源p rint w orking directory

  • 功能:显示当前所在的目录路径(绝对路径)

  • 命令格式pwd(没有选项和参数)

示例:

bash 复制代码
bash

book@100ask:~$ pwd
/home/book

这表示当前位于 /home/book 目录下。无论你在文件系统中走到哪里,pwd 都能告诉你现在身处何方。

注意事项:

  • pwd 没有任何选项,直接输入即可。

2. cd ------ 切换目录

  • 英文来源c hange directory

  • 功能:改变当前工作目录,即"跳转"到其他目录

  • 命令格式cd [目录]

示例:

bash 复制代码
bash

book@100ask:~$ pwd
/home/book
book@100ask:~$ cd /home/
book@100ask:/home$ pwd
/home

/home/book 切换到 /home

常用缩略用法:

  • cd - :回到上一次所在的目录(在两个目录之间快速切换)

    bash 复制代码
    bash
    
    book@100ask:/home$ cd /etc
    book@100ask:/etc$ cd -
    /home
    book@100ask:/home$
  • cd ~ 或直接 cd :回到当前用户的家目录(例如 /home/book

    bash 复制代码
    bash
    
    book@100ask:/etc$ cd ~
    book@100ask:~$ pwd
    /home/book
  • cd .. :返回上一级目录

    bash 复制代码
    bash
    
    book@100ask:/home/book$ cd ..
    book@100ask:/home$ pwd
    /home
  • cd ../.. :返回上两级目录


3. mkdir ------ 创建目录

  • 英文来源m ak e directory

  • 功能:创建一个新的空目录

  • 命令格式mkdir [选项] 目录名

常用选项:

  • -pparents,递归创建多级目录(如果父目录不存在,自动创建)

示例1:创建单个目录

bash 复制代码
bash

book@100ask:/work$ mkdir dir0
book@100ask:/work$ ls -l
total 4
drwxrwxr-x 2 book book 4096  7月 27 14:57 dir0

创建了一个名为 dir0 的目录。

示例2:递归创建多级目录

bash 复制代码
bash

book@100ask:/work$ mkdir -p dir1/dir2
book@100ask:/work$ ls -l
total 4
drwxrwxr-x 3 book book 4096  7月 27 14:58 dir1
book@100ask:/work$ cd dir1
book@100ask:/work/dir1$ ls
dir2

-p 选项使得即使 dir1 不存在,也会先创建 dir1,再在 dir1 下创建 dir2

注意事项:

  • 目录名可以带路径,例如 mkdir /home/book/newdir 会在指定位置创建。

  • 如果目录已存在,会提示错误(除非使用 -p,它不会报错)。


4. rmdir ------ 删除空目录

  • 英文来源r em ove directory

  • 功能 :删除一个空目录

  • 命令格式rmdir 目录名

示例:

bash 复制代码
bash

book@100ask:/work$ mkdir emptydir
book@100ask:/work$ rmdir emptydir
book@100ask:/work$ ls emptydir
ls: cannot access 'emptydir': No such file or directory

成功删除空目录。

注意事项:

  • rmdir 只能删除空目录。如果目录非空,会报错:

    bash 复制代码
    bash
    
    book@100ask:/work$ rmdir dir1
    rmdir: failed to remove 'dir1': Directory not empty
  • 要删除非空目录,需要使用 rm -r 命令(后面会讲)。


5. ls ------ 列出目录内容

  • 英文来源l ist

  • 功能:列出指定目录下的文件和子目录(默认是当前目录)

  • 命令格式ls [选项] [目录或文件]

常用选项:

选项 含义
-l 使用长格式显示详细信息(权限、链接数、所有者、大小、修改时间等)
-a 显示所有文件,包括以点 . 开头的隐藏文件
-h 人性化显示文件大小(如K、M、G),常与 -l 联用
-d 显示目录本身的信息,而不是目录下的内容
-i 显示文件的inode号
-R 递归显示子目录内容
--help 显示命令的帮助信息

示例1:基本列出

bash 复制代码
bash

book@100ask:/work/001_linux_basic$ ls
dir1  file1  file2

只显示文件名,不包含隐藏文件。

示例2:显示所有文件(包括隐藏文件)

bash 复制代码
bash

book@100ask:/work/001_linux_basic$ ls -a
.  ..  dir1  file1  file2  .hidden

. 表示当前目录,.. 表示上级目录,.hidden 是一个隐藏文件。

示例3:显示详细信息

bash 复制代码
bash

book@100ask:/work/001_linux_basic$ ls -l
total 8
drwxrwxr-x 2 book book 4096  7月 27 14:54 dir1
-rw-rw-r-- 1 book book    0  7月 27 14:54 file1
-rw-rw-r-- 1 book book    0  7月 27 15:44 file2

每一列的含义:

  • 第一个字符:d表示目录,-表示普通文件,l表示链接等。

  • 后面9个字符:文件权限(所有者、组、其他用户的读/写/执行权限)。

  • 第二列:硬链接数。

  • 第三列:所有者(owner)。

  • 第四列:所属组(group)。

  • 第五列:文件大小(字节)。

  • 第六列:最后修改时间。

  • 第七列:文件名。

示例4:组合选项 -la-al

bash 复制代码
bash

book@100ask:/work/001_linux_basic$ ls -la
total 20
drwxrwxr-x 3 book book 4096  7月 27 15:44 .
drwxrwxr-x 5 book book 4096  7月 27 11:50 ..
drwxrwxr-x 2 book book 4096  7月 27 14:54 dir1
-rw-rw-r-- 1 book book    0  7月 27 14:54 file1
-rw-rw-r-- 1 book book    0  7月 27 15:44 file2
-rw-rw-r-- 1 book book    0  7月 27 15:44 .hidden

显示所有文件(包括隐藏文件)的详细信息。

示例5:人性化显示文件大小

bash 复制代码
bash

book@100ask:/work/001_linux_basic$ ls -lh
total 8.0K
drwxrwxr-x 2 book book 4.0K  7月 27 14:54 dir1
-rw-rw-r-- 1 book book    0  7月 27 14:54 file1
-rw-rw-r-- 1 book book    0  7月 27 15:44 file2

大小显示为 4.0K 而不是 4096,更易读。

示例6:查看命令帮助

bash 复制代码
bash

book@100ask:~$ ls --help

会显示 ls 命令的所有选项和用法说明,非常有用。


6. cp ------ 复制文件或目录

  • 英文来源c opy

  • 功能:复制文件或目录

  • 命令格式cp [选项] 源文件 目标文件cp [选项] 源文件... 目标目录

常用选项:

  • -r-Rrecursive,递归复制目录及其内容

  • -fforce,强制覆盖,不提示

  • -iinteractive,交互模式,覆盖前询问

  • -d :复制链接文件时保留链接属性(复制链接本身而不是指向的文件)

  • -aarchive ,归档模式,相当于 -dR --preserve=all,常用于备份

示例1:复制文件

bash 复制代码
bash

book@100ask:/work$ cp file1 file2

file1 复制为同目录下的 file2。如果 file2 已存在,默认会覆盖(有的系统会别名 cp -i 提示确认)。

示例2:复制文件到另一个目录

bash 复制代码
bash

book@100ask:/work$ cp file1 dir1/

file1 复制到 dir1 目录下,文件名不变。

示例3:复制目录

bash 复制代码
bash

book@100ask:/work$ cp -r dir1 dir2

dir1 目录及其所有内容递归复制到 dir2。如果 dir2 不存在,则创建;如果存在,则 dir1 会成为 dir2 的子目录。

示例4:组合选项

bash 复制代码
bash

book@100ask:/work$ cp -rf dir_a dir_b

-r 递归复制,-f 强制覆盖。这种组合常用于复制大量文件且不需要交互确认。

注意事项:

  • 复制目录时必须加 -r,否则会报错"omitting directory"。

  • 使用 -i 可以防止误覆盖,适合谨慎操作。


7. rm ------ 删除文件或目录

  • 英文来源r emove

  • 功能:删除文件或目录

  • 命令格式rm [选项] 文件或目录

常用选项:

  • -r-R :递归删除,用于删除目录及其内容

  • -f :强制删除,忽略不存在的文件,不提示

  • -i :交互模式,删除前询问确认

示例1:删除文件

bash 复制代码
bash

book@100ask:/work$ rm file1

删除 file1 文件。如果文件不存在,会提示错误。

示例2:强制删除文件

bash 复制代码
bash

book@100ask:/work$ rm -f file1

即使文件不存在也不会报错。

示例3:删除目录及其所有内容

bash 复制代码
bash

book@100ask:/work$ rm -r dir1

递归删除 dir1 目录及其内部所有文件和子目录。如果目录非空,不加 -r 会报错。

示例4:强制递归删除(常用组合)

bash 复制代码
bash

book@100ask:/work$ rm -rf dir_a

这是最危险的命令之一,它会不加提示地删除指定目录下的所有内容。务必谨慎使用,确认路径正确。

注意事项:

  • rm -rf / 会删除根目录下所有文件(系统崩溃!),绝对不要尝试。

  • 建议在使用 rm -rf 前先用 ls 确认路径,或者先使用 -i 选项。


8. cat ------ 连接并显示文件内容

  • 英文来源 :concatenate

  • 功能:将文件的内容依次输出到标准输出(通常是屏幕)

  • 命令格式cat [选项] 文件...

示例1:显示单个文件

bash 复制代码
bash

book@100ask:/work$ cat file1.txt
hello world.

显示 file1.txt 的内容。

示例2:连接多个文件并显示

bash 复制代码
bash

book@100ask:/work$ cat file1.txt file2.txt
hello world.
www.100ask.org

依次显示 file1.txtfile2.txt 的内容。

常用选项:

  • -n :显示行号(包括空行)

  • -b :显示行号,但空行不编号

  • -s :压缩连续的空行为一行

注意事项:

  • cat 适合查看小文件。对于大文件,建议使用 lessmore 分页查看。

  • 如果只用 cat 不加文件,会等待标准输入,输入什么就回显什么(按 Ctrl+D 结束)。


9. touch ------ 创建空文件或更新文件时间戳

  • 英文来源:touch(接触)

  • 功能:如果文件不存在,则创建一个空文件;如果文件已存在,则将其访问和修改时间更新为当前时间

  • 命令格式touch [选项] 文件名

示例:创建空文件

bash 复制代码
bash

book@100ask:/work$ touch newfile
book@100ask:/work$ ls -l newfile
-rw-rw-r-- 1 book book 0  7月 27 15:00 newfile

创建了一个大小为0的空文件 newfile

常用选项:

  • -a :只修改访问时间(atime)

  • -m :只修改修改时间(mtime)

  • -t :使用指定时间戳而不是当前时间

注意事项:

  • touch 常用于快速创建占位文件,或在编译时更新文件时间戳以触发重新编译。

10. 绝对路径与相对路径

在Linux中,定位文件或目录有两种方式:绝对路径和相对路径。

绝对路径

  • 定义 :从根目录 / 开始的完整路径,可以唯一确定一个文件或目录。

  • 例子/home/book/1.txt/bin/pwd/etc/passwd

  • 特点:在任何位置使用绝对路径都能正确找到目标,不受当前目录影响。

相对路径

  • 定义 :相对于当前工作目录的路径,不以 / 开头。

  • 特殊符号

    • . :代表当前目录

    • .. :代表上一级目录

    • ../../ :代表上两级目录,以此类推

  • 例子

    假设当前目录是 /home/book

    • ./1.txt 表示当前目录下的 1.txt,即 /home/book/1.txt

    • ../book/1.txt 表示上一级目录(/home)下的 book 子目录中的 1.txt,即 /home/book/1.txt(因为上一级是 /home,再往下 book 就是当前目录?这里要小心:../homebook/home 下的子目录,所以 /home/book/1.txt 与当前目录相同,但写法是 ../book/1.txt)。

    • ../../etc/passwd 表示上两级目录(/)下的 etc/passwd

路径使用技巧:

  • 切换目录时,常用 cd .. 返回上级,cd - 返回上次目录。

  • 复制或移动文件时,可以用相对路径简化操作。

  • 在脚本中,为了避免路径依赖,建议使用绝对路径或基于脚本所在目录的路径。

相关推荐
i建模1 小时前
Ubuntu增加安装桌面环境
linux·运维·ubuntu
大Mod_abfun1 小时前
AntdUI教程#1ChatList交互(vb.net)
服务器·前端·ui·交互·antdui·聊天框
艾莉丝努力练剑1 小时前
MySQL查看命令速查表
linux·运维·服务器·网络·数据库·人工智能·mysql
皮皮哎哟1 小时前
Linux网络最终篇:TCP并发服务器
linux·服务器·select·epoll·poll·tcp并发
无心水1 小时前
【OpenClaw:进阶开发】11、OpenClaw插件开发入门——从零编写“文件统计与报表生成”Skill
linux·运维·ubuntu
sbjdhjd1 小时前
RHCE | Linux 例行性工作(定时任务)从入门到精通
linux·运维·服务器·华为·云计算
枷锁—sha1 小时前
【CTFshow-pwn系列】03_栈溢出【pwn 056-057】详解:32位 与64位Shellcode 与 Linux 系统调用底层原理剖析
linux·运维·网络·笔记·安全·网络安全·系统安全
人间打气筒(Ada)1 小时前
ansible之role角色
运维·ansible·自动化运维·template·role·红帽·批量部署
shimly1234561 小时前
github 配置 ssh key ssh-key
运维·ssh·github