【LINUX学习】链接文件

linux下的连接文件和windows下的快捷方式有点像。不过linux 下有硬链接和软链接两种。
硬链接:
是在某个目录下新增一个源链接文件的关联数据。比如 为/etc/passwd 创建一个硬链接/tmp/passwd-hd  其实就是这两个文件是同一个文件,通过etc 目录中的passwd 文件可以知道passwd 的inode 放在A处,而tmp 目录中的pass-hd 也指向A处,所以passwd 这个文件的inode 和 block 都没有改变。
硬链接的限制:
1 不能分区连接
2 不能link 目录!
如果将两个目录做硬链接,对其中的任一个做更改,另一个也会做相应的更改,因此比较复杂。所以linux 并不支持对目录的硬链接。

软链接:
是建立一个独立的文件,而这个文件会让读数据时指向源文件。也因此当源文件被删除时,软连接不可用。由于软链接是建立了一个独立的文件,所以会使用inode和block 。
有以上的介绍可以知道 硬链接比较安全,因为即使源文件被删除了,也可以通过硬链接文件依然可以访问被删除的数据。但是由于硬链接的限制导致实际应用中软链接的应用比较多。看看下面的实验:

[root@localhost tmp]# cp  /etc/passwd    passwd
[root@localhost tmp]# ls
gconfd-root                                 scim-bridge-0.3.0.socket-0@localhost:0.0
httpd-2.2.17.tar.bz2                        scim-panel-socket:0-root
passwd                                      virtual-root.r1kfiJ

[root@localhost tmp]# du -sb ; df -i  
9966607 .   --当前文件的大小
文件系统               Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda2            1022976   88836  934140    9% /
/dev/sda1              26104      35   26069    1% /boot
tmpfs                  59414       1   59413    1% /dev/shm
[root@localhost tmp]# ln passwd passwd-hd  做硬链接
[root@localhost tmp]# du -sb ; df -i
9966607 .  --大小不变
文件系统               Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda2            1022976   88836  934140    9% /
/dev/sda1              26104      35   26069    1% /boot
tmpfs                  59414       1   59413    1% /dev/shm
[root@localhost tmp]# cat passwd-hd  --查看passwd的内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
--省略
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
yang:x:500:500:yang:/home/yang:/bin/bash
[root@localhost tmp]# cat passwd | wc -l
38
[root@localhost tmp]# vi passwd-hd
编辑 passwd-hd 删除一些行数
然后查看两个文件,结果passwd 也被修改了!
[root@localhost tmp]# cat passwd-hd | wc -l
33
[root@localhost tmp]# cat passwd | wc -l
33

[root@localhost tmp]# cp  /etc/passwd passwds
[root@localhost tmp]# du -sb ; df -i
9968023 .
文件系统               Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda2            1022976   88837  934139    9% /
/dev/sda1              26104      35   26069    1% /boot
tmpfs                  59414       1   59413    1% /dev/shm
[root@localhost tmp]# ln -s passwds passwd-so
[root@localhost tmp]# ls -li passwd*
127927 -rw-r--r-- 2 root root 1416 11-27 19:53 passwd
127927 -rw-r--r-- 2 root root 1416 11-27 19:53 passwd-hd
---两个文件的inode 是一样的。
127930 -rw-r--r-- 1 root root 1713 11-26 17:45 passwds
127931 lrwxrwxrwx 1 root root    7 11-27 19:55 passwd-so -> passwds
--软连接的inedo不一样
[root@localhost tmp]# cat passwd-so
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
gdm:x:42:42::/var/gdm:/sbin/nologin
distcache:x:94:94:Distcache:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
squid:x:23:23::/var/spool/squid:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
yang:x:500:500:yang:/home/yang:/bin/bash
[root@localhost tmp]# du -sb ; df -i
9968030 .
文件系统               Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda2            1022976   88838  934138    9% /
/dev/sda1              26104      35   26069    1% /boot
tmpfs                  59414       1   59413    1% /dev/shm
删除passwds 之后 使用软链接查看:
[root@localhost tmp]# rm passwds
rm:是否删除 一般文件 “passwds”? y
[root@localhost tmp]# cat passwd-so
cat: passwd-so: 没有那个文件或目录
删除passwd 之后 使用硬链接查看:
[root@localhost tmp]# rm passwd
rm:是否删除 一般文件 “passwd”? y
[root@localhost tmp]# cat passwd-hd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
---省略--
pcap:x:77:77::/var/arpwatch:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
gdm:x:42:42::/var/gdm:/sbin/nologin
distcache:x:94:94:Distcache:/:/sbin/nologin
--------------------------EOF-------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

链表之反转部分单向链表

package com.chenyu.zuo.linkedList;import com.chenyu.zuo.linkedList.RemoveByRatio.Node;/*** 题目:给定一个单向链表的头结点head,以及两个整数from和to* ,在单项链表上把第from个节点和第to个节点这一部分进行反转* 列如:* 1->2->3->4->5->null,from=2,t…

【DB2学习文档之七】SQL for DB2

作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.SQL的数据操作语言data manipulation language (DML) 参见Beginning SQL Queries: From Novice to Professional, by Clare Churcher (Apress, 2008) 2.Select语句 这个语句是DB2中最简单也最复杂的语…

这些让人看瞎了的设计!实力证明,谁才是世界的最终boss!

全世界只有3.14 % 的人关注了爆炸吧知识我瞎了也懵了昨天知识君刷微博,看到了一组动图,一时间我都不知道是我的眼睛出了错,还是我的大脑反应不过来。奇了怪了!怎么箭头反转了180后,还是原样!问题到底出在哪…

如何实现 asp.net core 安全优雅退出 ?

咨询区 AppDeveloper我想问一个老生常谈的问题,如何可以保证程序优雅的退出,这里用 优雅 的目的是因为我想在退出之前做一些小动作。用户场景:希望在程序退出之前可以从 Consul 上解注册, 下面是我的模板代码。public static IWebHostBuilder…

持续集成之配置TeamCity

离开上个东家差不多有一年半的时间了,这一年半更多的还是在学习,或者说更多的是在收拾前辈们写的代码,其中的酸甜苦辣只有经历过的人才知道,想想还是上个东家好,软件研发的流程很规范,各种配套的工具都是现…

java 上传文件编码_(java)有什么办法把MultipartFile上传的文件转为utf-8的编码吗

[Java] 纯文本查看 复制代码import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import org.apache.tika.Tika;import org.apache.tika.detect.AutoDetectReader;import org.apache.tika.exception.TikaExc…

Android之的性能优化方法

1、布局优化: 原理:尽量减少布局的文件的层级,层级越少,Android绘制时的工作量少了,程序性能提高 1、删除无用的控件和层级,选择使用性能较低的ViewGroup,比如RelativeLayout 2、如果布局在有LinearLayout和RelativeLayout,建议使用LinearLayout,RelativeLayout功能…

Set函数、Get函数、点语法和类方法

1.Set函数 setter函数,对成员变量赋值。Set函数的一般写法以对age操作为例,写法为: -(void)setAge:(int)newage。 2. Get函数 getter函数,对成员变量取值。Get函数的一般写法也以对age的操作为例,写法为: -…

弹出框css技巧

2019独角兽企业重金招聘Python工程师标准>>> 技术要点&#xff1a; 一个覆盖整个屏幕的浅灰色背景的div,一个包含内容的的div, 代码如下&#xff1a; <div id"financeTip" style""><div class"financeTipBg" style"&qu…

在业务层实现校验请求参数

前言在前面的文章中&#xff0c;我们介绍了在业务层实现管道模式&#xff1a;响应缓存记录请求日志今天&#xff0c;我们同样使用IPipelineBehavior&#xff0c;介绍如何在业务层实现校验请求参数&#xff0c;用于检查输入是否满足业务要求。Demo首先&#xff0c;创建ASP.NET C…

Leetcode: Valid Parentheses

与 POJ 上那道括号匹配相比, 这道可谓简单 思路: 堆栈存储符号, 遇到匹配弹出 代码: #include <iostream> #include <stack> using namespace std;class Solution { public:bool isValid(string s) {stack<char> record;for(int i 0; i < s.size(); i ) …

Android之Bitmap的内存优化方案总结

在Android应用里&#xff0c;最耗费内存的就是图片资源。而且在Android系统中&#xff0c;读取位图Bitmap时&#xff0c;分给虚拟机中的图片的堆栈大小只有8M&#xff0c;如果超出了&#xff0c;就会出现OutOfMemory异常。所以&#xff0c;对于图片的内存优化&#xff0c;是And…

静电可以有多好玩?

1 静电可以有多好玩&#xff1f;孩子&#xff1a;知道我怎么秃的了吧2 这就是爱情啊3 今年最佳cos4 别人家的狗能当桌子▼你家的狗……&#xff08;主银&#xff0c;我就这样静静的看着你&#xff09;▼5 含羞草6 可以让我骑一下你吗7 总之&#xff0c;离我远点你点的每个赞&am…

+操作符重载(2)

2019独角兽企业重金招聘Python工程师标准>>> #include <iostream> class C_A { public: int Cn; }; struct S_A { public: int Sn; }; enum E_A { En 12 }; C_A operator(int n,C_A cVar) { cVar.Cn n; return cVar; …

WPF 四种不同效果呼吸灯

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织由于微信群人数太多入群请添加小编微信号&#xff08;yanjinhuawechat&#xff09;或&#xff08;W_Feng_aiQ&#xff09;邀请入群&#xff08;需备注WPF开发者&#xff09;PS&#xff1a;有更好的…

用GCD线程组与GCD信号量将异步线程转换为同步线程

用GCD线程组与GCD信号量将异步线程转换为同步线程 有时候我们会碰到这样子的一种情形: 同时获取两个网络请求的数据,但是网络请求是异步的,我们需要获取到两个网络请求的数据之后才能够进行下一步的操作,这个时候,就是线程组与信号量的用武之地了. 线程组用以监听线程的执行情况…

Android之自定义属性,format详解

1. reference&#xff1a;参考某一资源ID。&#xff08;1&#xff09;属性定义&#xff1a;<declare-styleable name "名称"><attr name "background" format "reference" /></declare-styleable>&#xff08;2&#xff09…

基于visual Studio2013解决C语言竞赛题之0710排序函数

&#xfeff;&#xfeff;题目解决代码及点评/* 10、用指向指针的指针的方法对N个整数排序并输出。 要求排序单独写成一个函数。N个整数和N在主程序中输入&#xff0c;最后在主函数中输出。 */ #include <stdio.h> #include <stdlib.h> #define N 10 void main() {…

清华本科生0人去阿里,交叉信息院硕士没人再深造 | 清华大学2020年毕业生就业质量报告...

全世界只有3.14 % 的人关注了爆炸吧知识转自&#xff1a;量子位作者&#xff1a;金磊 杨净这几天&#xff0c;《清华大学2020年毕业生就业质量报告》火了。于是&#xff0c;我们也下载下来“拜读”了一下。就业率、毕业去向、就业地域等等信息看下来&#xff0c;也还算是情理之…

一句命令行检查cpu个数

wmic cpu get NumberOfCores, NumberOfLogicalProcessors