用到的指令:

在创建游戏场之前,先要复习一个关于链接的知识:

ln 命令即可创建硬链接,也可以创建符号链接。可以用其中一种方法来使用它:
ln file link
创建硬链接,和:
ln -s item link
创建符号链接,“item” 可以是一个文件或是一个目录。

硬链接
硬链接和符号链接比起来,硬链接是最初 Unix 创建链接的方式,而符号链接更加现代。在
默认情况下,每个文件有一个硬链接,这个硬链接给文件起名字。当我们创建一个硬链接以后,
就为文件创建了一个额外的目录条目。硬链接有两个重要局限性:
1. 一个硬链接不能关联它所在文件系统之外的文件。这是说一个链接不能关联与链接本身
不在同一个磁盘分区上的文件。
2. 一个硬链接不能关联一个目录。
一个硬链接和文件本身没有什么区别。不像符号链接,当你列出一个包含硬链接的目录内
容时,你会看到没有特殊的链接指示说明。当一个硬链接被删除时,这个链接被删除,但是文
件本身的内容仍然存在(这是说,它所占的磁盘空间不会被重新分配),直到所有关联这个文

件的链接都删除掉。知道硬链接很重要,因为你可能有时会遇到它们,但现在实际中更喜欢使
用符号链接,下一步我们会讨论符号链接。

符号链接
创建符号链接是为了克服硬链接的局限性。符号链接生效,是通过创建一个特殊类型的文
件,这个文件包含一个关联文件或目录的文本指针。在这一方面,它们和 Windows 的快捷方
式差不多,当然,符号链接早于 Windows 的快捷方式很多年;-)
一个符号链接指向一个文件,而且这个符号链接本身与其它的符号链接几乎没有区别。例
如,如果你往一个符号链接里面写入东西,那么相关联的文件也被写入。然而,当你删除一个
符号链接时,只有这个链接被删除,而不是文件自身。如果删除这个文件早于文件的符号链接,
这个链接仍然存在,但是不指向任何东西。在这种情况下,这个链接被称为坏链接。在许多实
现中,ls 命令会以不同的颜色展示坏链接,比如说红色,来显示它们的存在。
关于链接的概念,看起来很迷惑,但不要胆怯。我们将要试着练习这些命令,希望,它变
得清晰起来。

创建游戏场(实战演习)
下面我们将要做些真正的文件操作,让我们先建立一个安全地带,来玩一下文件操作命令。
首先,我们需要一个工作目录。在我们的主目录下创建一个叫做 “playground” 的目录。

再在playground下创建dir1和dir2,一次性创建mkdir -p可以多层目录一起:

下一步,让我们得到一些数据到我们的游戏场中。通过复制一个文件来实现目的。使用 cp

命令,我们从/etc 目录复制 passwd 文件到当前工作目录下:

现在,仅仅是为了高兴,重复操作复制命令,使用 “-v” 选项(唠叨),看一个它的作用:

cp 命令再一次执行了复制操作,但是这次显示了一条简洁的信息,指明它进行了什么操
作。注意,cp 没有警告,就重写了第一次复制的文件。这是一个案例,cp 假定你知道你的所
作所为。为了得到警示信息,在命令中包含 “-i” 选项。

响应命令提示信息,输入 “y”,文件就会被重写,其它的字符(例如,”n”)会导致 cp 命令
不理会文件。

现在,“passwd” 这个名字,看起来不怎么有趣,这是个游戏场,所以我们给它改个名字:

让我们来传送 fun 文件,通过移动重命名的文件到各个子目录,然后再把它移回到当前目录:

最后,再把 fun 文件带回到当前工作目录:

接下来,我们复制目录:

首先还是先把fun移动到dir1下。

然后移动 dir1 到 dir2 目录,用 ls 来确认执行结果;

注意:因为目录 dir2 已经存在,mv 命令移动 dir1 到 dir2 目录。如果 dir2 不存在,mv 会重新命名 dir1 为 dir2。

最后,再把所有的东西放回原处。

现在,我们试着创建链接。首先是硬链接。我们创建一些关联我们数据文件的链接:

注意到一件事,列表中,文件 fun 和 fun-hard 的第二个字段是 “4”,这个数字是文件 “fun”
的硬链接数目。你要记得一个文件至少有一个硬链接,因为文件名就是由链接创建的。所以,
我们怎样知道实际上 fun 和 fun-hard 是一样的文件呢?在这个例子里,ls 不是很有用。虽然我
们能够看到 fun 和 fun-hard 文件大小一样(第五字段),但我们的列表没有提供可靠的信息来
确定(这两个文件一样)。

当考虑到硬链接,想象文件是由两部分组成:数据部分包含文件的内容,名字部分包含文
件的名字,这样可以帮助理解。当我们创建了文件的硬链接,实际上,我们给文件添加了额外
的名字,这些名字都涉及一样的数据内容。系统分配了一系列的盘块给所谓的索引节点,它和
文件名字想关联。因此每个硬链接都关系到一个具体的索引节点,这个节点包含了文件的内
容。
ls 命令有一种方法,来展示(文件索引节点)的信息。在命令中加上 “-i” 选项:

在这个版本的列表中,第一字段表示文件索引节点号,正如我们所见到的,fun 和 fun-hard共享一样的索引节点号,这就证实这两个文件是一样的文件。

创建符号链接
建立符号链接的目的是为了克服硬链接的两个缺点:硬链接不能跨越物理设备,硬链接不
能关联目录,只能是文件。符号链接是文件的特殊类型,它包含一个指向目标文件或目录的文
本指针。
符号链接的建立过程相似于创建硬链接:

记住,当我们创建一个符号链接的时候,会建立一个目标文件在那里和符号链接有关联的文本描述。如果我们看看 ls 命令的输出结果,比较容易理解。

目录 dir1 中,fun-sym 的列表说明了它是一个符号链接,通过在第一字段中的首字符 “l”
可知,并且它还指向 “../fun”,也是正确的。相对于 fun-sym 的存储位置,fun 在它的上一个目
录。同时注意,符号链接文件的长度是 6,这是字符串 “../fun” 所包含的字符数,而不是符号
链接所指向的文件长度。
当建立符号链接时,你即可以使用绝对路径名:

 

也可用相对路径名,正如前面例题所展示的。使用相对路径名更令人满意,因为它允许一
个包含符号链接的目录重命名或移动,而不会破坏链接。
除了普通文件,符号链接也能关联目录:

正如我们之前讨论的,rm 命令被用来删除文件和目录。我们将要使用它来清理一下我们的
游戏场。首先,删除一个硬链接:

结果不出所料。文件 fun-hard 消失了,文件 fun 的链接数从 4 减到 3,正如目录列表第二字段所示。
下一步,我们会删除文件 fun:

在提示符下输入 “y”,删除文件。让我们看一下 ls 的输出结果。注意,fun-sym 发生了什么
事? 因为它是一个符号链接,指向已经不存在的文件,链接已经坏了:

大多数 Linux 的发行版本配置 ls 显示损坏的链接。在 ubuntu系统中,坏的链接以闪烁的
红色文本显示!损坏链接的出现,并不危险,但是相当混乱。如果我们试着使用损坏的链接,
会看到以下情况:

稍微清理一下现场。删除符号链接:

对于符号链接,有一点值得记住,执行的大多数文件操作是针对链接的对象,而不是链接
本身。而 rm 命令是个特例。当你删除链接的时候,删除链接本身,而不是链接的对象。(这句话上面意思呢?测试例程如下:)

{

  建立一个main.c,写入hello内容,创建符号链接main-sym,然后把main-sym的更改为hello world,最后查看main.c,main.c也被更改。但是rm指令是个特例哦,删除的就是链接符号,而不是链接对象。

}
最后,我们将删除我们的游戏场。为了完成这个工作,我们将返回到我们的主目录,然后
用 rm 命令加上选项 (-r),来删除目录 playground,和目录下的所有内容,包括子目录

总结
在这一章中,我们已经研究了许多基础知识。我们得花费一些时间来全面的理解。反复练
习 playground 例题,直到你觉得它有意义。能够良好的理解基本文件操作命令和通配符,非
常重要。空闲时,通过添加文件和目录来拓展 playground 练习,使用通配符来为各种各样的
操作命令指定文件。关于链接的概念,在刚开始接触时会觉得有点迷惑,花些时间来学习它们
是怎样工作的。它们能成为真正的救星。

转载于:https://www.cnblogs.com/yangguang-it/p/7084164.html

创建游戏场(实战演习)相关推荐

  1. Swift游戏开发实战教程(大学霸内部资料)

    Swift游戏开发实战教程(大学霸内部资料) 试读下载地址:http://pan.baidu.com/s/1sj7DvQH 介绍:本教程是国内第一本Swift游戏开发专向资料. 本教程详细讲解记忆配对 ...

  2. iOS cocos2d 2游戏开发实战(第3版)---你的第一个游戏!

    2019独角兽企业重金招聘Python工程师标准>>> 随着苹果公司不断地创新与发展,新的iPhone 5.iPad 4以及iPad mini产品相继问世,包括iOS与Xcode在内 ...

  3. HTML5 Canvas游戏开发实战 PDF扫描版

    HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读 ...

  4. 《HTML5 Canvas游戏开发实战》——2.1 绘制基本图形

    本节书摘来自华章计算机<HTML5 Canvas游戏开发实战>一书中的第2章,第2.1节,作者:张路斌著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2. ...

  5. 从踩坑到填坑|淘宝Web 3D应用与游戏开发实战

    导读:本文是淘宝前端技术专家--徐乾伟(烧鹅)分享的淘宝 Web 3D 应用与游戏开发实战,这个话题在业界被谈及得比较少.今天将会从移动.3D.游戏三种交叉的话题来和大家探讨.接下来和小编一起从初试 ...

  6. 微信小游戏开发实战教程13-随机生成形状功能的实现

    微信小游戏开发实战系列的第13篇. 本节内容包括:通过使用列表来实现可以设置权重的随机功能,以及游戏中的随机生成形状功能的具体实现. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游 ...

  7. HTML5游戏开发实战

    <HTML5游戏开发实战> 基本信息 原书名:HTML5 Games Development by Example: Beginner's Guide 作者: (美)Makzan 译者: ...

  8. 微信小游戏开发实战教程8-消除处理

    这是小蚂蚁游戏开发公众号原创的第42篇,微信小游戏开发实战系列的第8篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容. 本篇主要内容包括如何对网格上满足消除条件的方块进行消除处理. 如果 ...

  9. 【游戏开发实战】Unity手游第一人称视角,双摇杆控制,FPS射击游戏Demo(教程 | 含Demo工程源码)

    文章目录 一.前言 二.实现方案 1.无主之地,第一人称视角 2.我之前做的摇杆控制 3.第一人称视角 + 摇杆控制 三.开始实战 1.资源获取:Unity AssetStore 2.Low Poly ...

最新文章

  1. Redis重要文档、数据结构、操作行为
  2. 全球及中国自媒体行业营销模式及应用规模前景分析报告2021-2027年
  3. 消费者驱动的契约测试 Spring Cloud Contract介绍
  4. 反射 数据类型_C#扫盲篇(一):反射机制情真意切的说
  5. Unity根据电脑高中低配置加载不同模型
  6. Median of Two Sorted Arrays@LeetCode
  7. python 学习笔记 常用模块(五)
  8. Web 前端小白入门(一):心路历程,非技术指南
  9. 计算机学院实习报告3000字(Java开发实习)--持续更新中,多个专业,以及版本
  10. C语言用字母ABC输出菱形,C语言输出菱形的方法
  11. java 流计算_Java 流收集器 ( Stream Collectors ) ( 一 ) - 统计计算
  12. CSS3实战-文字篇
  13. 自己动手打造深度学习服务器
  14. 4.15 最短路 题
  15. Ubuntu文件查找命令集合
  16. python三大_Python之三大器
  17. WIFI热点——bat文件创建笔记本快捷wifi技术
  18. 理解S.M.A.R.T.格式及从中获取硬盘状态信息
  19. FDDB生成ROC曲线
  20. JPGNet: Joint Predictive Filtering and Generative Network for Image Inpainting

热门文章

  1. 分卷压缩并解压 (线上服务器如何把很大的数据拷贝到另外一台服务器上)
  2. Chrome中的from memory cache与from disk cache
  3. node.js升级后原来的Ionic项目跑不起来了解决方法
  4. 老板:kill -9的原理都不知道就敢到线上执行,明天不用来了!
  5. JVM:7种垃圾回收器总结
  6. python粘贴代码到word_Python复制Word内容并使用格式设字体与大小实例代码
  7. 《数据中心项目规范(征求意见稿)》
  8. 数据港:攻破OPEX+SLA难题,实现全生命周期效能管理
  9. 13张图看懂综合类数据中心机房建设标准!
  10. 浓烟滚滚!某市联通集体断网,谁的锅?