跳转到内容

Ict-创新/LPI/103.3

来自维基教科书,开放的书籍,开放的世界

103.3 执行基本文件管理

[编辑 | 编辑源代码]

考生应能够使用基本的 Linux 命令来管理文件和目录。


关键知识领域

  • 分别复制、移动和删除文件和目录。
  • 递归地复制多个文件和目录。
  • 递归地删除文件和目录。
  • 在命令中使用简单和高级的通配符规范。
  • 使用 find 根据类型、大小或时间查找并操作文件。
  • 使用 tar、cpio 和 dd。

在文件系统中移动

[编辑 | 编辑源代码]

绝对路径和相对路径

可以通过给出其完整路径名(从根目录 (/) 开始)或其相对路径(从当前目录开始)来访问目录或文件。

绝对路径:独立于用户的当前目录,以 / 开头

相对路径:取决于用户的位置,不以 / 开头

与任何结构化文件系统一样,有很多实用程序可以帮助您浏览系统。

pwd:以绝对路径的形式给出您的实际位置。

cd:'更改目录' 命令

ls: 列出目录的内容。

该命令可以接受几个参数,其中最常见的是

-l – 使用长列表格式,

-a – 列出所有文件和目录,包括隐藏的文件和目录,

-h – 以人类可读的格式显示文件大小,即格式化以方便阅读

-d – 仅列出目录,不列出其内容。


查找文件和目录

我们将描述 findwhichwhereislocate 实用程序。

find

语法

find <DIRECTORY> <CRITERIA> [-exec <COMMAND> {} \;]


DIRECTORY 参数告诉 find 从哪里开始搜索,而 CRITERIA 可以是串行选择条件的组合,包括要查找的文件或目录的名称。


示例

# find /usr/X11R6/bin -name ¨x*¨.

# find / -user 502

匹配文件的名称将列在标准输出中。或者,可以对找到的每个文件执行特定操作。例如,删除文件或更改权限。find 工具具有内置选项 –exec ,允许您执行此操作。例如,删除属于用户 502 的所有文件

# find / -type f -user 502 –exec rm –f {} \;

find 的常见条件开关
-type 指定文件类型
-name 文件的名称(可以包含通配符)
-user 用户所有者
-atime、ctime、mtime 访问时间、创建时间和修改时间(24 小时的倍数)
-amin、cmin、mmin 访问时间、创建时间和修改时间(1 分钟的倍数)
-newer FILE FILE 更新的文件


处理目录

创建目录

创建目录时,可以使用 -m 选项设置权限模式。另一个有用的选项是 -p,它会根据需要自动创建所有子目录。

示例

# mkdir –p docs/programs/versions


删除目录

要删除目录,请使用 rmdir 或 rm -rrmdir 仅删除空目录。指定 -f 强制删除您没有写入权限的文件。

注意:rm –rf /dir1/* 删除所有文件和子目录,使 dir1 为空

rm –rf /dir1/ 删除所有文件和子目录,包括 dir1

使用 cp 和 mv

cp

语法

cp [options] file1 file2

cp [options] files directory

需要注意的是,cp file1 file2 会创建 file1 的一个新副本,并保留 file1 不变。您也可以使用列表或通配符将多个文件复制到目录中。下表列出了最常用的选项。

cp 的最常见选项
-d 不遵循符号链接(与 -R 一起使用时)
-f 强制
-i 交互式,在覆盖之前提示
-p 保留文件属性
-r 递归地复制目录


注意: cp –r /mydir/* /dir2/ 将复制所有文件和子目录,省略 mydir

cp –r /mydir/ /dir2/ 将复制所有文件和子目录,包括 mydir

mv

语法

mv [options] oldname newname

mv [options] source destination

mv [options] source directory


mv 命令既可以移动也可以重命名文件和目录。如果 oldname 是文件,而 newname 是目录,则文件 oldname 将被移动到该目录中。

如果源和目标位于同一个文件系统上,则文件不会被复制,而是链接将简单地移动到新位置。最常见的选项是 -f 强制覆盖和 -i 交互式查询。

touch 和 dd

touch

另一种创建或修改文件的方法是使用 touch

语法: touch {options} file(s)

如果 file 不存在,则创建它。您还可以使用 -a 选项将文件的访问时间更新为当前时间,-m 更改修改时间,-r 用于应用另一个文件的属性。

示例

touch file1.txt file2.txt 创建新文件

touch myfile -r /etc/lilo.conf myfile 获取 lilo.conf 的属性


dd

此命令以可更改的 I/O 块大小复制文件。它也可以用于执行转换(类似于 tr)。主要选项是 if=(输入文件)of= (输出文件)conv=(转换)

转换开关可以是:lcase ucase ascii

示例

# dd if=/dev/sda1 of=/dev/sda2

请注意,与 cp 不同,dd 工具会复制设备的部分内容并保留底层文件系统。另一方面,cp 仅处理数据,并将数据从一个文件系统传输到另一个文件系统

文件归档和压缩

[编辑 | 编辑源代码]

Linux 有几个用于压缩和归档文件的实用程序。其中一些工具起源于磁带归档和备份解决方案,参数和名称反映了这一点。


tar

tar(磁带存档)命令用于归档目录并可选地压缩存档。最初,tar 命令用于归档到磁带,但现在也可以归档到磁盘,这是它最常见的用途。存档如下创建

# tar – cvjf backup.tar.bz /home/user1

这将创建一个 user1 主目录的 bzip 压缩存档。提供给 tar 的选项是

  • c – 创建存档,
  • v – 在创建存档期间显示详细输出,
  • j – 使用 bzip 压缩压缩存档,或者可以使用 z,它将使用 gzip 压缩
  • f – 要创建的文件的名称,在本例中为 backup.tar,bz

要解压缩 backup.tar.bz 存档,您将使用以下命令

# tar -xvjf backup.tar.bz

这将解压缩存档到当前目录。命令行参数与上面的示例基本相同,除了 -x(提取)参数,它替换了 -c(创建)。要列出存档的内容而不提取它,您将使用 -t 参数

# tar -tf backup.tar.bz


cpio

cpio 是一个较旧的存档实用程序,它本身不支持压缩。cpio 代表 copy in/out。虽然 cpio 在很大程度上已被 tar 取代,但它仍在 Linux 中使用。特别是 initrd 映像文件是一个 cpio 存档。cpio 期待标准输入中列出的要存档的文件,因此通常与 findls 命令结合使用。

$ ls | cpio -ov > backup.cpio

$ find / | cpio -ov > backup.cpio

以上两个命令使用 cpio 创建了一个存档。v 参数告诉 cpio 在创建存档期间提供详细输出。要提取存档,您将使用类似以下的命令

$ cpio -iv < backup.cpio

这将提取 cpio 存档到当前目录。关于 cpio,需要注意的一点是它的参数。对于存档,我们通常谈论存档和提取,这表明 -c 用于创建,而 -x 或 -e 用于提取。记住 -o 用于创建,而 -i 用于提取的最简单方法是记住 cpio 代表 copy in/ copy out。您将通过从文件系统中复制出来来创建存档,并通过从存档中复制进来来提取存档。


gzip/gunzip

gzip 用于使用 Lempel-Ziv 编码压缩文件。与大多数 Linux 命令一样,它可以接受大量参数,但最常用的使用方法如下

$ gzip largefile.txt

默认情况下,gzip 会创建一个与输入文件同名但带有 .gz 扩展名的输出文件。上面的命令将创建一个名为 largefile.txt.gz 的压缩文件。要解压缩文件,您将运行以下命令

$ gunzip largefile.txt.gz

$ gzip -d largefile.txt.gz

bzip/bzip2

bzip2 使用 Burrows-Wheeler 块排序文本压缩算法和哈夫曼编码来压缩文件,这被认为比 Lempel-Ziv 文件压缩算法更有效。它最常用的压缩文件格式会以 1 到 9 之间的数字作为参数。这个数字用于告诉 bzip2 使用效率最低但速度最快的压缩块大小(1)或使用效率最高但速度最慢的压缩块大小(9)。如果没有指定数字,则默认使用 9。

$ bzip2 -9 largefile.txt

这将创建一个与原始文件名相同但扩展名为 .bz 的最小文件。在本例中,文件将是 largefile.txt.bz。要解压缩文件,可以使用

$ bzip2 -d largefile.txt.bz2 **或**

$ bunzip2 largefile.txt.bz2



使用过的文件、术语和工具:* cp

  • find
  • mkdir
  • mv
  • ls
  • rm
  • rmdir
  • touch
  • tar
  • cpio
  • dd
  • file
  • gzip
  • gunzip
  • bzip2
  • 文件通配符


上一章 | 下一章

华夏公益教科书