【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-------------------------

时间: 2024-10-31 21:29:34

【LINUX学习】链接文件的相关文章

Linux学习笔记 文件服务Vsftp详细介绍

知识点: 1.FTP使用TCP连接和TCP端口 2.在进行通信时,FTP需要建立两个TCP连接: 一个用于控制信息,TCP端口号缺省为21 一个用于数据传输,TCP端口号缺省为20 3.Vsftp是一个基于GPL发布的类Unix系统上的FTP服务器 4.其名称中的VS即"Verysecure"的意思,可见安全性高. 配置: 1.查看是否安装了Vsftp #rpm –qa vsftpd 2.安装 放入第三张光盘 #mount /mnt/cdrom #cd /mnt/cdrom/RedHa

LINUX学习(八)Linux文件链接命令

     ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名.而且,即使我们删除这个链接,也不会破坏原来的目录. 语法:ln [选项] 目标 [链接名] ln [选项] 目标 目录 链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic L

linux基础-求助大牛,linux系统下动态链接文件出错???

问题描述 求助大牛,linux系统下动态链接文件出错??? 有个linux下的应用程序,在centos5.8下正常运行,但是放到centos6.3-64bit 的就出现错误,错误代码是:error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory 大牛们我该如何查找错误点?怎么解决这个问题..非常感谢!!!我的QQ:1602710388.

Linux下脚本文件的seq的学习

问题描述 Linux下脚本文件的seq的学习 B=seq -s " " -f"iconback%02g" 1 $A C=seq -s " " -f"img%0g" 1 $A 请问哪位知道如何让B,C 打印出来的值一一对应,例如:img1="iconback01",img2="iconback02".... 解决方案 seq没法支持两个变量,用awk来 awk 'BEGIN { for(i

linux链接文件怎么恢复

问题描述 linux链接文件怎么恢复 home/work目录下有data->/mnt/sda/data的一个链接,我把work改了一下名字,怎么/mnt/sda4/data没有数据了???急急急!!! 解决方案 重新创建一个连接吧,ln -f ~/work/data /mnt/sda4/data 解决方案二: 删除原来的link,然后重新建立一个新的 ln -s

LINUX学习(七)Linux文件的复制、删除和移动命令

      cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大. 语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中. 该命令的各选项含义如下: - a 该选项通常在拷贝目录时使用.它保留链接.文件属性,并递归地拷贝目录,其作用等于dpR选项的组合. - d 拷贝时保留链接. - f 删除已经存在的目标文件而不提示. - i 和f选项相反,在覆盖目标文件之前将给

LINUX学习(一)文件与目录操作

        用户的数据和程序大多以文件的形式保存.用户使用Linux系统的过程中,需要经常对文件和目录进行操作.本章讲述了文件与目录的基本概念,有关文件和目录操作的命令以及如何在Linux环境下运行DOS命令. 文件与目录的基本概念 文件与文件名 在多数操作系统中都有文件的概念.文件是Linux用来存储信息的基本结构,它是被命名(称为文件名)的存储在某种介质(如磁盘.光盘和磁带等)上的一组信息的集合.Linux文件均为无结构的字符流形式.文件名是文件的标识,它由字母.数字.下划线和圆点组成的

phpmyadmin: linux学习篇-使用apt-get方式安装LAMP包括phpmyadmin

linux学习篇-使用apt-get方式安装LAMP包括phpmyadmin    对于想学linux的朋友来说,在虚拟机上装上linux系统是不二选择.至于哪种linux好用,萝卜白菜,各有所爱.我喜欢ubuntu,虚拟机上安装的是最新的ubuntu11.10    搭建LAMP环境有两种方式可以选择,一是用apt-get方式安装,这个适合初学者.有点是安装简单,不需要做什么配置就可以使用.缺点是自主性太差,安装目录啊啥的都是默认的,不方便自己管理,也不敢轻易的移动位置.二是用编译安装的方法.

linux 硬链接和软链接深入理解

在学习linux的过程中,我经常把软硬链接,所以今天专门查了一些资料,然后整合在自己的博客中,方便以后复习,查看. 一方面也是因为看了vamei的linux的概念与体系系列文章,感觉不全的做些补充. 软链接相当于windows中的快捷方式.硬链接相当于一个灾备系统,数据存放在两处,与复制不同的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,另外,一处数据如果被删除了,不会影响到另一处的数据. 详细的介绍: 硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连