技术支持 创思佳网站建设,如何制作自己的网站,新东方英语线下培训学校,做一个网站的建设流程此时此刻#xff0c;我们已经准备好了做些真正的工作#xff01;这一章节将会介绍以下命令#xff1a;
• cp —复制文件和目录
• mv —移动/重命名文件和目录
• mkdir —创建目录
• rm —删除文件和目录
• ln —创建硬链接和符号链接
图形文件管理器能轻松地实现…此时此刻我们已经准备好了做些真正的工作这一章节将会介绍以下命令
• cp —复制文件和目录
• mv —移动/重命名文件和目录
• mkdir —创建目录
• rm —删除文件和目录
• ln —创建硬链接和符号链接
图形文件管理器能轻松地实现简单的文件操作但是对于复杂的文件操作任务则使用命令行程序比较容易完成。例如怎样拷贝一个目录下所有的 HTML 文件到目标目录 同时保证只拷贝目标目录不存在或者版本比目标目录的文件更新的文件要完成这个任务使用文件管理器相当难使用命令行相当容易 cp -u *.html destination
通配符
在开始使用命令之前我们需要介绍一个使命令行如此强大的 shell 特性。因为shell 频繁地使用文件名shell 提供了特殊字符来帮助你快速指定一组文件名。这些特殊字符叫做通配符。使用通配符允许你依据字符的组合模式来选择文件名。表1列出这些通配符以及它们所选择的对象表2列出了最常使用的字符类 表4-1: 通配符
通配符意义*匹配任意多个字符包括零个或一个匹配任意一个字符不包括零个[characters]匹配任意一个属于字符集characters中的字符[characters]匹配任意一个不是字符集中的字符[[:class:]]匹配任意一个属于指定字符类中的字符
表4-2: 列出了最常使用的字符类
字符类意义[:alnum:]匹配任意一个字母或数字[:alpha:]匹配任意一个字母[:digit:]匹配任意一个数字[:lower:]匹配任意一个小写字母[:upper:]匹配任意一个大写字母
借助通配符为文件名构建非常复杂的选择标准成为可能。下面是一些类型匹配的范例: 表4-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 命令是用来创建目录的。它这样工作
# 会创建一个名为”dir1”的目录
mkdir dir1#会创建三个目录名为 dir1, dir2, dir3。
mkdir dir1 dir2 dir3cp - 复制文件和目录
# 复制单个文件或目录”item1”到文件或目录”item2”
cp item1 item2#复制多个项目文件或目录到一个目录下
cp item... directory表4-4cp选项
选项意义-a, --archive复制文件和目录以及它们的属性包括拥有者和所有权。 通常情况下文件拷贝具有执行拷贝操作的用户的默认属性。-i, --interactive在覆盖已存在文件之前提示用户确认。如果这个选项不指定 cp 命令会默认覆盖文件。-r, --recursive递归地复制目录及目录中的内容。当复制目录时 需要这个选项或者 -a 选项。-u, --update当把文件从一个目录复制到另一个目录时仅复制 目标目录中不存在的文件或者是文件内容新于目标目录中已经存在文件的内容的文件。-v, --verbose显示翔实的命令操作信息
表4-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 命令可以执行文件移动和文件命名任务这取决于你怎样使用它。任何一种 情况下完成操作之后原来的文件名不再存在。mv 使用方法与 cp 很相像
# 把文件或目录 “item1” 移动或重命名为 “item2”
mv item1 item2# 把一个或多个条目从一个目录移动到另一个目录中
mv item... directory表4-6: mv 选项
选项意义-i --interactive在覆盖一个已经存在的文件之前提示用户确认信息。 如果不指定这个选项mv 命令会默认覆盖文件内容。-u --update当把文件从一个目录移动另一个目录时只是移动不存在的文件 或者文件内容新于目标目录相对应文件的内容的文件。-v --verbose当操作 mv 命令时显示翔实的操作信息。
表4-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”代表一个或多个文件或目录。
rm item...表4-8: rm 选项
选项意义-i --interactive在删除已存在的文件前提示用户确认信息。 如果不指定这个选项rm 会默默地删除文件。-r, --recursive递归地删除文件这意味着如果要删除一个目录而此目录 又包含子目录那么子目录也会被删除。要删除一个目录必须指定这个选项。-f, --force忽视不存在的文件不显示提示信息。这选项覆盖了“–interactive”选项。-v --verbose在执行 rm 命令时显示翔实的操作信息。
表4-9: rm 实例
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。
tips: Linux没有复原命令。一旦你用 rm 删除了一些东西 它就消失了。 当你使用带有通配符的 rm 命令时除了仔细检查输入的内容外 先用 ls 命令来测试通配符。这会让你看到将要被删除的文件是什么。然后按下上箭头按键重新调用 刚刚执行的命令用 rm 替换 ls。
思考一下这个经典的例子。假如说你只想删除一个目录中的 HTML 文件。输入 rm .html 这是正确的如果你不小心在 “” 和 “.html” 之间多输入了一个空格就像这样 rm * .html 这个 rm 命令会删除目录中的所有文件还会抱怨没有文件叫做 “.html”。
ln — 创建链接
ln 命令既可创建硬链接也可以创建符号链接。可以用两者中的任意一种形式来使用它
#创建硬链接
ln file link# 创建符号链接”item” 可以是一个文件或是一个目录。
ln -s item link与更加现代的符号链接相比硬链接是最初 Unix 创建链接的方式。每个文件默认会有一个硬链接 这个硬链接给予文件名字。我们每创建一个硬链接就为一个文件创建了一个额外的目录项。
硬链接有两个重要局限性 1.一个硬链接不能关联它所在文件系统之外的文件。这是说一个链接不能关联 与链接本身不在同一个磁盘分区上的文件。 2.一个硬链接不能关联一个目录。
一个硬链接和文件本身表面上看不出什么区别。它跟符号链接很不一样当你列出一个包含硬链接的目录 内容时你会看不到有什么特殊说明来表示这是一个链接。当一个硬链接被删除时这个链接 被删除但是文件本身的内容仍然存在这是说它所占的磁盘空间不会被释放 直到所有关联这个文件的链接都删除掉。知道硬链接很重要因为你可能有时 会遇到它们但现在实际中更喜欢使用符号链接下一步我们会讨论符号链接。
符号链接
创建符号链接是为了克服硬链接的局限性。符号链接生效是通过创建一个 特殊类型的文件这个文件包含一个关联文件或目录的文本指针。在这一方面 它们和 Windows 的快捷方式差不多当然符号链接早于 Windows 的快捷方式 很多年;-)
一个符号链接指向一个文件而且这个符号链接本身与其它的符号链接几乎没有区别。 例如如果你往一个符号链接里面写入东西那么相关联的文件也被写入。然而 当你删除一个符号链接时只有这个链接被删除而不是文件自身。如果先于符号链接 删除文件这个链接仍然存在但是不指向任何东西。在这种情况下这个链接被称为 坏链接。在许多实现中ls 命令会以不同的颜色展示坏链接比如说红色来显示它们 的存在。
实战演习
#下面我们将要做些真正的文件操作让我们先建立一个安全地带 来玩一下文件操作命令。
#首先我们需要一个工作目录。在我们的 家目录下创建一个叫做“playground”的目录。
[SIlocalhost /]$ mkdir playground#在 playground 目录下创建一对目录 分别叫做 “dir1” 和 “dir2”。
[SIlocalhost /]$ cd playground/
[SIlocalhost playground]$ mkdir dir1 dir2
[SIlocalhost playground]$ ls
dir1 dir2#我们使用 cp 命令从 /etc 目录复制 passwd 文件到当前工作目录下
[SIlocalhost playground]$ cp /etc/passwd .#请注意我们使用命令末尾的一个圆点来简化当前工作目录的写法。如果我们执行 ls 命令 可以看到我们的文件
[SIlocalhost playground]$ ls -l
总用量 4
drwxr-xr-x 2 root root 6 2月 20 17:35 dir1
drwxr-xr-x 2 root root 6 2月 20 17:35 dir2
-rw-r--r-- 1 root root 2742 2月 20 17:36 passwd