技能 | 操作文件和目录

本文主要记录以下几个命令:

 

  • cp — 复制文件和目录

  • mv — 移动/重命名文件和目录

  • mkdir — 创建目录

  • rm — 删除文件和目录

  • ln — 创建硬链接和符号链接

这五个命令属于最常使用的 Linux 命令之列。它们用来操作文件和目录。在介绍这些命令之前,先介绍一下通配符。

表1.通配符

 

通配符意义
*匹配任意多个字符(包括零个或一个)
?匹配任意一个字符(不包括零个)
[characters]匹配任意一个属于字符集中的字符
[!characters]匹配任意一个不是字符集中的字符
[[:class:]]匹配任意一个属于指定字符类中的字符

表2.普遍使用的字符类

 

字符类意义
[:alnum:]匹配任意一个字母或数字
[:alpha:]匹配任意一个字母
[:digit:]匹配任意一个数字
[:lower:]匹配任意一个小写字母
[:upper:]匹配任意一个大写字母

表3.通配符范例

 

模式匹配对象
*所有文件
g*文件名以“g”开头的文件
b*.txt以"b"开头,中间有零个或任意多个字符,并以".txt"结尾的文件
Data???以“Data”开头,其后紧接着3个字符的文件
[abc]*文件名以"a","b",或"c"开头的文件
BACKUP.[0-9][0-9][0-9]以"BACKUP."开头,并紧接着3个数字的文件
[[:upper:]]*以大写字母开头的文件
[![:digit:]]*不以数字开头的文件
*[[:lower:]123]文件名以小写字母结尾,或以 “1”,“2”,或 “3” 结尾的文件

 

mkdir:命令是用来创建目录的。它这样工作:mkdir directory ...

在描述一个命令时(如上所示),当有三个圆点跟在一个命令的参数后面,这意味着那个参数可以重复.

比如:mkdir dir1,创建一个名为dir1的目录;

            mkdir dir1,dir2,dir3,创建三个目录,分别为dir1,dir2,dir3

cp:复制文件或者目录。它有两种使用方法:

1)cp item1 item2   复制单个文件或目录”item1”到文件或目录”item2”

2)cp item ... directory     复制多个项目(文件或目录)到一个目录下

下表列举了cp命令一些有用的选项。

表4.cp选项

 

选项意义
-a, --archive复制文件和目录,以及它们的属性,包括所有权和权限。通常,复本具有用户所操作文件的默认属性。
-i, --interactive在重写已存在文件之前,提示用户确认。如果这个选项不指定,cp 命令会默认重写文件。
-r, --recursive递归地复制目录及目录中的内容。当复制目录时,需要这个选项(或者-a 选项)。
-u, --update当把文件从一个目录复制到另一个目录时,仅复制目标目录中不存在的文件,或者是文件内容新于目标目录中已经存在的文件。
-v, --verbose显示翔实的命令操作信息

表5.cp命令实例

 

命令运行结果
cp file1 file2复制文件 file1 内容到文件 file2。如果 file2 已经存在,file2 的内容会被 file1 的内容重写。如果 file2 不存在,则会创建 file2。
cp -i file1 file2这条命令和上面的命令一样,除了如果文件 file2 存在的话,在文件 file2 被重写之前,会提示用户确认信息。
cp file1 file2 dir1复制文件 file1 和文件 file2 到目录 dir1。目录 dir1 必须存在。
cp dir1/* dir2使用一个通配符,在目录 dir1 中的所有文件都被复制到目录 dir2 中。dir2 必须已经存在。
cp -r dir1 dir2复制目录 dir1 中的内容到目录 dir2。如果目录 dir2 不存在,创建目录 dir2,操作完成后,目录 dir2 中的内容和 dir1 中的一样。如果目录 dir2 存在,则目录 dir1 (和目录中的内容)将会被复制到 dir2 中。

mv :命令可以执行文件移动和文件命名,任务任何一种情况下,完成操作之后,原来的文件名不再存在。mv 使用方法与 cp 很相像:

 

1)mv item1 item2   把文件或目录 “item1” 移动或重命名为 “item2”

2)mv item ... directory     把一个或多个条目从一个目录移动到另一个目录中

mv的选项列表和实例,如表6、7所示。

表6.mv选项

 

选项意义
-i --interactive在重写一个已经存在的文件之前,提示用户确认信息。如果不指定这个选项,mv 命令会默认重写文件内容。
-u --update当把文件从一个目录移动另一个目录时,只是移动不存在的文件,或者文件内容新于目标目录相对应文件的内容。
-v --verbose当操作 mv 命令时,显示翔实的操作信息。

表7.mv实例

 

mv file1 file2移动 file1 到 file2。如果 file2 存在,它的内容会被 file1 的内容重写。如果 file2 不存在,则创建 file2。 每种情况下,file1 不再存在。
mv -i file1 file2除了如果 file2 存在的话,在 file2 被重写之前,用户会得到提示信息外,这个和上面的选项一样。
mv file1 file2 dir1移动 file1 和 file2 到目录 dir1 中。dir1 必须已经存在。
mv dir1 dir2如果目录 dir2 不存在,创建目录 dir2,并且移动目录 dir1 的内容到目录 dir2 中,同时删除目录 dir1。如果目录 dir2 存在,移动目录 dir1(及它的内容)到目录 dir2。

rm:命令用来移除(删除)文件和目录。

rm item ...   移除一个或多个item文件或目录

表8.rm选项

选项意义
-i, --interactive在删除已存在的文件前,提示用户确认信息。如果不指定这个选项,rm 会默默地删除文件
-r, --recursive递归地删除文件,这意味着,如果要删除一个目录,而此目录又包含子目录,那么子目录也会被删除。要删除一个目录,必须指定这个选项。
-f, --force忽视不存在的文件,不显示提示信息。这选项覆盖了“--interactive”选项。
-v, --verbose在执行 rm 命令时,显示翔实的操作信息。

表9.rm实例

命令运行结果
rm file1默默地删除文件
rm -i file1除了在删除文件之前,提示用户确认信息之外,和上面的命令作用一样。
rm -r file1 dir1删除文件 file1, 目录 dir1,及 dir1 中的内容。
rm -rf file1 dir1同上,除了如果文件 file1,或目录 dir1 不存在的话,rm 仍会继续执行。

在使用rm命令的时候要十分的小心。类 Unix 的操作系统,比如说 Linux,没有复原命令。一旦你用 rm 删除了一些东西,它就消失了。Linux 假定你很聪明,你知道你在做什么。

尤其要小心通配符。思考一下这个经典的例子。假如说,你只想删除一个目录中的 HTML文件。输入:

rm *.html

这是正确的,如果你不小心在 “*” 和 “.html” 之间多输入了一个空格,就像这样:

rm * .html

这个 rm 命令会删除目录中的所有文件,还会抱怨没有文件叫做 “.html”。

在使用rm命令的时候,有时会出现rm: cannot remove 'playground': Is a directory的情况,这个时候,在输入命令的时候加上一个选项即可,即:rm -r dir1

Tips:论什么时候,rm 命令用到通配符(除了仔细检查输入的内容外!),用 ls 命令来测试通配符。这会让你看到要删除的文件列表。然后按下上箭头按键,重新调用刚刚执行的命令,用 rm 替换 ls。

 

ln:命令既可创建硬链接,也可以创建符号链接。

 

ln file link   创建硬链接;

ln -s item link    创建符号链接,item可以是一个文件或是一个目录。

什么是硬链接?

与更加现代的符号链接相比,硬链接是最初 Unix 创建链接的方式。每个文件默认会有一个硬链接,这个硬链接给予文件名字。我们每创建一个硬链接,就为一个文件创建了一个额外的目录项。硬链接有两个重要局限性:

 

  1. 一个硬链接不能关联它所在文件系统之外的文件。这是说一个链接不能关联与链接本身不在同一个磁盘分区上的文件。

  2. 一个硬链接不能关联一个目录。

一个硬链接和文件本身没有什么区别。不像符号链接,当你列出一个包含硬链接的目录内容时,你会看到没有特殊的链接指示说明。当一个硬链接被删除时,这个链接被删除,但是文件本身的内容仍然存在(这是说,它所占的磁盘空间不会被重新分配),直到所有关联这个文件的链接都删除掉。知道硬链接很重要,因为你可能有时会遇到它们,但现在实际中更喜欢使用符号链接,下一步我们会讨论符号链接。

 

什么是符号链接?

创建符号链接是为了克服硬链接的局限性。符号链接生效,是通过创建一个特殊类型的文件,这个文件包含一个关联文件或目录的文本指针。在这一方面,它们和 Windows 的快捷方式差不多,当然,符号链接早于 Windows 的快捷方式很多年。

一个符号链接指向一个文件,而且这个符号链接本身与其它的符号链接几乎没有区别。例如,如果你往一个符号链接里面写入东西,那么相关联的文件也被写入。然而,当你删除一个符号链接时,只有这个链接被删除,而不是文件自身。如果先于符号链接删除文件,这个链接仍然存在,但是不指向任何东西。在这种情况下,这个链接被称为坏链接。在许多实现中,ls 命令会以不同的颜色展示坏链接,比如说红色,来显示它们的存在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux目录文件操作是Linux系统的基础知识之一,也是Linux系统管理员必须要掌握技能。下面是对Linux目录文件操作实验的分析: 实验目的: 通过本实验,学生能够掌握Linux目录文件操作的基本知识,包括创建、删除、复制、移动、重命名、查看、修改文件目录操作。 实验环境: 本实验可以在Linux虚拟机或者云服务器上进行。 实验步骤: 1. 创建一个目录 使用mkdir命令可以创建一个新的目录,语法如下: mkdir directory_name 例如,创建一个名为test的目录,可以使用以下命令: mkdir test 2. 在目录中创建文件 使用touch命令可以创建一个新的文件,语法如下: touch file_name 例如,在test目录中创建一个名为testfile的文件,可以使用以下命令: cd test touch testfile 3. 复制文件目录 使用cp命令可以复制一个文件目录,语法如下: cp source_file destination_file cp -R source_directory destination_directory 例如,将testfile复制到test目录中,可以使用以下命令: cp testfile test/ 将test目录复制到test1目录中,可以使用以下命令: cp -R test test1 4. 移动文件目录 使用mv命令可以移动一个文件目录,也可以用于重命名文件目录,语法如下: mv source_file destination_file mv source_directory destination_directory mv old_name new_name 例如,将testfile移动到test1目录中,可以使用以下命令: mv testfile test1/ 将test目录重命名为test2,可以使用以下命令: mv test test2 5. 删除文件目录 使用rm命令可以删除一个文件目录,语法如下: rm file_name rm -r directory_name 例如,删除testfile文件,可以使用以下命令: rm testfile 删除test2目录及其所有子目录文件,可以使用以下命令: rm -r test2 6. 查看文件目录 使用ls命令可以查看当前目录下的文件和子目录,语法如下: ls 使用ls命令加上文件名或目录名可以查看指定文件目录的详细信息,语法如下: ls file_name ls directory_name 例如,查看当前目录的所有文件和子目录,可以使用以下命令: ls 查看test目录的详细信息,可以使用以下命令: ls test 7. 修改文件目录 使用chmod命令可以修改文件目录的权限,语法如下: chmod mode file_name chmod mode directory_name 例如,将test目录的权限设置为777,可以使用以下命令: chmod 777 test 使用chown命令可以修改文件目录的所有者,语法如下: chown owner_name file_name chown owner_name:group_name file_name 例如,将testfile的所有者设置为root,可以使用以下命令: chown root testfile 将testfile的所有者设置为root,组名设置为test,可以使用以下命令: chown root:test testfile 结论: 通过本实验,我们学习了Linux目录文件操作的基本知识,掌握了创建、删除、复制、移动、重命名、查看、修改文件目录操作。在实际工作中,这些技能也是Linux系统管理员必不可少的技能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值