linux基础知识-14
Tofloor
poster avatar
老陌
deepin
2018-07-17 16:48
Author
本帖最后由 myccloves 于 2018-7-17 19:33 编辑

一个有趣的逻辑,把一个文件保存在两个地方,但只有一份, 或者说用两个不同的文件名保存一个文件,这种思想有些反人类,但这就是linux下的硬链接。
下面是见证奇迹的时刻,老陌认真的做了这个例子,一来是巩固一下之前学习的知识,二来体验一下硬链接。


故事是这样的……

某天一个帅哥(kevin),一个美女(alice)来找老陌,他们要共同编写一本小说,想让老陌在服务器上创建两个账号,他们谁有空闲时间就登录服务器进行编写。由于是共同合作编写,所以他们不想每写一点就通过email传来传去,之后拼接整理,很麻烦。 能不能有一种方法两个人在各自的目录里编写,但对方打开自己的文件之后却是更新的。

挺晕,因为老陌头一次接触,所以换个说法:



kevin在自己的家目录里创建了story目录,里面有一个小说叫九阳神帝。 这一天kevin心血来潮写下了一段,之后没词了,保存之后出去渡假了。
alice也在自己的家目录里创建了story目录,因为和kevin共同编写,所以alice的story目录里的小说也叫九阳神帝。在kevin渡假其间alice打开九阳神帝,发现开头已经写好了,于是继续写。
这一天alice打小怪兽去了,正好kevin回来,打开九阳神帝发现alice已经写好多了。于是kevin继续写……
现在老陌懂了,在不同目录里的两个文件,好像同一个文件一样,其中一人修改,另一端也发生变化。当然,这个思维很无聊,不要上纲上线,就是为了说明硬连接的问题。
在alice和kevin的不断请求下,老陌答应了。

硬连接
老陌分析了一下需求,首先要添加两个用户,这还不简单,打开控制中心……
NO! NO! 这样逼格太低了,怎么也得让老陌在帅哥,美女面前炫耀一翻。
(一)创建用户
  1. #创建用户
  2. sudo useradd -m  -s /bin/bash kevin
  3. sudo useradd -m  -s /bin/bash alice


  4. #设置密码
  5. sudo passwd kevin
  6. sudo passwd alice
Copy the Code

(二)创建组
因为两个不同的用户要共同访问同一个文件,根据前面学习的知识,应该在组或其它人的权限上下手。由于他们二人共同合作,不想让第三方人来破坏,所以老陌选择用共同组的方式来管理文件。
  1. ##创建组
  2. sudo groupadd story


  3. ##把alice, kevin添加到组中
  4. sudo usermod -a -G story kevin
  5. sudo usermod -a -G story alice
Copy the Code

(三)构建结构
kevin,alice各自登录构建自己的目录结构。
1. kevin构建结构
  1. #切换用户
  2. su - kevin


  3. #创建目录
  4. mkdir story

  5. #修改story目录的组所有者为:story组,并设置组所有者的权限为:rwx
  6. chgrp story story
  7. chmod g=rwx story

  8. #创建小说,修改小说的组所有者为story,并设置组所有者的权限为:rw-
  9. touch story/九阳神帝
  10. chgrp story story/九阳神帝
  11. chmod g=rw- story/九阳神帝
Copy the Code

2. alice构建结构
  1. #切换用户
  2. su - alice

  3. #创建目录
  4. mkdir story

  5. #修改story目录的组所有者为:story组,并设置组所有者的权限为:rwx
  6. chgrp story story
  7. chmod g=rwx story
Copy the Code

(四)创建硬连接
目前alice并没有创建九阳神帝这个文件,因为需要把kevin的九阳神帝文件硬连接到alice的story目录中,硬连接之后表示这两个文件是同一个文件。
  1. ln story/九阳神帝 /home/alice/story/九阳神帝
Copy the Code

ln命令是创建链接的命令,比如快捷方式(软链接)就是通过这个命令创建的。类似于cp命令,把一个文件复制到另一个地方,但ln是在另一个地方创建的链接,而不是文件的副本。

(五)测试
这一天kevin心血来潮写下了一段,之后没词了,保存之后出去渡假了。
一阵剧痛,老陌醒来发现这是一个陌生的地方……

看看自己的双手满是鲜血,衣服和之前也不一样,莫非穿越了?

在kevin渡假其间alice打开九阳神帝,发现开头已经写好了,于是继续写……
见证奇迹的时刻来了:
alice登录之后发现九阳神帝中已经有写好的内容了。

后记:
这是老陌linux基础知识-14中的片断,linux基础知识-14还没有整理完,老陌一会儿要出门,感觉硬连接挺有趣就发了出来。
小白们想了解链接的更多信息,请继续关注。


补充:
linux基础知识-14整理完毕,和这篇文章差不多,后面的知识点可以参考老陌博客,不单独发了:

https://www.cnblogs.com/myccloves/p/9322739.html


Reply Favorite View the author
All Replies
avatar
jianguo922
deepin
2018-07-17 17:20
#1
呵呵,不错,感觉想win下的建了个共享文件,只有他们两个有读写权限
Reply View the author
avatar
老陌
deepin
2018-07-17 18:31
#2
https://bbs.deepin.org/post/166298
呵呵,不错,感觉想win下的建了个共享文件,只有他们两个有读写权限

现在命令用的不熟练,边学边忘!
Reply View the author
avatar
老陌
deepin
2018-07-18 03:32
#3
linux基础知识-14整理完毕。 https://www.cnblogs.com/myccloves/p/9322739.html
Reply View the author
avatar
‌量子巡游者
Moderator
2018-07-19 03:27
#4
楼主写的这么好,怎么不直接投给深度内刊!!!
Reply View the author