RHCSA学习笔记-02文件管理

RHCSA学习笔记-02文件管理

  • 最近更新2022年05月03日

学习目标:通过Bash shell 的操作,实现文件的复制、移动、创建、删除和组织。

掌握知识点:

  • 了解 Linux 如何组织文件,以及文件系统层次结构中各种目录的用途。
  • 指定文件相对于当前工作目录的位置和绝对位 置,确定并更改工作目录,以及列出目录的内容。
  • 创建、复制、移动和删除文件及目录。
  • 软、硬链接的应用。

一、LINUX文件系统层次结构

Linux系统中的所有文件存储在文件系统中,它们被组织到一个颠倒的目录树中,称为文件系统层次 结构。这棵树是颠倒的,因为树根在该层次结构的顶部,树根的下方延伸出目录和子目录的分支。

/目录是根目录,位于文件系统层次结构的顶部。

/字符还用作文件名中的目录分隔符。例如,如果etc是/目录的子目录,可以将该目录指代为/etc。

类似地,如果/etc目录包含一个名为 issue的文件,可以将该文件指代为/etc/issue。
红帽企业Linux重要目录

 

二、通过名称定位文件

2.1 绝对路径

绝对路径是一个完整的路径及名称,用于指定文件在文件系统层次结构中的确切位置。它从根(/)目 录开始,并指定为到达特定文件所必须遍历的每个子目录。文件系统中的每个文件都有一个唯一绝对路径名。

可通过一个简单的规则识别:第一个字符是正斜杠(/)的路径名是绝对路径名。例如, 系统消息日志文件的绝对路径名是/var/log/messageso绝对路径名键入起来可能会太长,所以也可通过相对于shell提示符当前工作目录的位置来查找文件。

2.2 相对路径

当用户登录并打开命令窗口时,初始位置通常是该用户的主目录。
与绝对路径一样,相对路径也标识唯一文件,仅指定从工作目录到达该文件所需的路径。

识别相对路径名遵循一个简单规则:第一个字符是正斜杠之外的其他字符的路径名是相对路径名。位于/ var目录的用户可以将消息日志文件相对指代为log/messageso。

2.3 导航路径

pwd命令显示该shell的当前工作目录的完整路径名。这可以帮助确定使用相对路径名来访问文件的语法。

ls命令列出指定目录的目录内容,如果未指定目录,则列出当前工作目录的内容。

cd命令可更改shell的当前工作目录。如果没有为该命令指定任何参数,它将切换到主目录。

touch该命令通常将文件的时间戳更新为当前日期和时间,而不进行其他修改。这通常可用于创建空文件(可供练习使用)。

ls命令具有多个选项,用于显示文件的属性。最常用的选项是 -l(长列表格式)、-a(包含隐藏文件在内的所有文件)以及-R(递归方式,显示的内容包含子目录的内容)。

列表顶部的两个特殊目录是当前目录(.)和父目录(..)。这些特殊目录存在于系统中的每一目录。

cd命令有许多选项。其中一些非常有用,值得您尽早练习和经常使用。cd – 命令可更改到用户在 进入当前目录之前所处的目录。

# 查看当前工作目录
pwd
# 切换到 /home 目录下
cd /home/
# 查看当前工作目录
pwd
# 快速切换上次切换的目录
cd -
# 查看当前工作目录
pwd

cd ..命令使用..隐藏目录上移一个级别,进入其父目录,而不必知道确切的父目录名称。

cd .可为当前位置是来源或目标参数的命令指定当前目录,以此免除键入目录绝对路径名的必要。

 

三、使用命令行工具管理文件

要管理文件,需要能创建、删除、复制和移动文件。此外,还需要按逻辑关系将它们整理到目录中,这就需要能创建、删除、复制和移动目录。

 

3.1 创建目录

mkdir命令可创建一个或多个目录或子目录。
如果该目录已存在,或者试图在一个不存在的目录中创建子目录,mkdir命令将失败并出现错误。-p (父级)选项将为请求的目标位置创建缺失的父目录。

# 切换到当前登录用户的家目录
cd ~
# 创建 aa/bb 目录(会出错!!!)
mkdir aa/bb
# 创建 aa/bb 目录
mkdir -p aa/bb

 

3.2 复制文件

cp命令可复制文件,在当前目录或指定目录中创建新文件。它也可将多个文件复制到某一目录中。

使用-r (递归)选项运行复制命令,可以将目录及其目录下的内容复制到对应的目录中。

 

3.3 移动文件

mv命令可将文件从一个位置移动到另一个位置。如果将文件的绝对路径视为它的全名,那么移动文件实际上和重命名文件一样。文件内容保持不变。

# 切换到当前登录用户的家目录
cd ~
# 创建一个空白文件 test
touch test
# 将test复制到当前aa目录下(如果aa目录不存在请自行创建: mkdir aa)
mv test aa/
# 将aa下的test文件,改名为demo
mv aa/test aa/demo

 

3.4 删除文件和目录

rm命令可删除文件。默认情况下,除非添加了-r–recursive选项,否则rm不会删除包含文件的目录。

rm -r命令首先遍历每个子目录,在删除每个目录之前逐一删除其中的文件。可以使用rm -ri 命令以交互方式提示确认,然后再删除。这基本上与使用-f选项相反,后者强制删除而不提示用户进行确认。

 

3.5 制作文件间的链接

在Linux中,可以创建指向同一文件的多个名称。有两种方法可以做到这一点:创建一个指向文件的硬链接,或创建一个指向文件的软链接(有时也称为符号链接)。

3.5.1 创建硬链接

从初始名称到文件系统上的数据,每个文件都以一个硬链接开始。当创建指向文件的新硬链接时,也会创建另一个指向同一数据的名称。新的硬链接与原始文件名的作用完全相同。一经创建,新的 硬链接与文件的原始名称便毫无二致。

可以通过ls -l命令来确定某个文件是否有多个硬链接。它报告的内容之一就是每个文件的链接数,即文件所具有的硬链接数。

# 进入到主目录
cd
# 创建空白文件夹 3501
touch 3501
# 查看文件
ls -l 3501

可以使用ln命令来创建一个指向现有文件的新硬链接(另一个名称)。该命令至少需要两个参 数,即现有文件的路径以及要创建的硬链接的路径。

# 创建硬链接
ln 3501 3501_link1
# 查看文件
ls 3501*

如果想知道两个文件是否为彼此的硬链接,一种方法是对ls命令使用-i选项,以列出文件的索 引节点编号。如果文件位于同一文件系统上,而且它们的索引节点编号相同,那么这 两个文件就是指向同一数据的硬链接。

# 查看文件硬链接
ls -il 3501*

 解释说明:

硬链接可以理解为一个文件的多个名称,被创建了硬链接的文件,不管修改原文件还是链接的文件,修改哪个名称的文件,其实都在修改同一个磁盘上存储的文件。

硬链接只能应用于普通文件,对于文件夹是不能创建硬链接的。

硬链接的局限性

  • 硬链接只能用于常规文件。不能使用ln来创建指向目录或特殊文件的硬链接。
  • 只有当两个文件都位于同一文件系统上时,才能使用硬链接。
  • 文件系统层次结构可以由多个存储设备组成。当切换到新目录时,该目录及其内容可能会存储在不同的文件系统中,具体取决于系统配置。

 

3.5.2 创建软链接

ln -s命令可创建软链接,也称为“符号链接”。软链接不是常规文件,而是指向现有文件或目录 的特殊类型的文件。

# 创建软链接
ln -s 3501 3501_link2
# 查看文件信息
ls -il 3501*

 

软链接相比硬链接有一定的优势:

  • 它们可以链接位于不同文件系统上的两个文件。
  • 它们可以指向目录或特殊文件,而不仅限于常规文件。

当原始常规文件被删除后,软链接依然会指向该文件,但目标已消失。指向缺失的文件的软链接称 为“悬挂的软链接”。

软链接可以指向目录。而后,软链接发挥目录一样的作用。通过cd更改为软链接将使当前工作目录变为链接目录。

 

分享到 :

发表评论

您的电子邮箱地址不会被公开。