当前位置:首页 » 操作系统 » linux链接文件

linux链接文件

发布时间: 2022-01-11 11:53:11

A. 什么是linux操作系统文件链接

链接类型及其意义

符号链接与硬链接在链接意义没有什么不同,只是在对目标文件的链接原理上有所不同。符号链接对应于C语言上的指针,符号链接文件只是保存目标文件的路径,访问是根据链接文件的路径进行访问;而硬链接是对应于C语言中的引用,硬链接文件中保存的是目标文件的inode结点。

正是由于链接方式的不同,这两种链接呈现出不同的特性。符号链接通常被称为软链接,它的目标文件既可以是目录,也可以是普通文件。由于符号链接文件中只是存放的目标文件的路径,故它不会改变目标文件中的inode的引用计数。删除目标文件对符号链接文件没有什么影响。硬链接文件则不同,它会改变目标文件的inode的引用计数,每新建一个硬链接文件时,目标文件的inode引用计数就会加一。删除目标文件时,目标文件并不会真正的删除,这里只是简单的将目标文件的引用计数减一,目标文件并没有删除。详情查看网页链接

创建链接文件

创建硬链接文件的命令格式:ln [链接目标文件] [硬链接文件名]

创建符号链接文件的命令格式:ln -s [链接目标文件或目录] [符号链接文件名]

举例(以下例子中的当前目录均为"/home/tingyu"):

在"/home/tingyu"目录中创建目录"/home/tingyu/hkc"的链接文件:ln -s /home/tingyu/hkc lnk

执行后的结果为:

tingyu@tingyu-laptop:~$ ln -s ./hkc lnk

tingyu@tingyu-laptop:~$ ls -l

total 32

drwxr-xr-x 2 tingyu tingyu 4096 2011-03-20 12:43 hkc

lrwxrwxrwx 1 tingyu tingyu 5 2011-03-20 12:43 lnk -> ./hkc

在"/home/tingyu"目录中创建文件"/home/tingyu/hkc"的链接文件:ln /home/tingyu/hkc lnk

B. linux 如何查看一个软连接实际指向的文件的位置

linux下查看软连接的信息使用命令“ls -L”最后一列就是原始地址(实际指向的文件的位置)。ln -s /home/basic/dl/ build/执行完成后,会在build路径下dl的目录, 使用ls -l查看会发现build下的dl-〉/home/basic/dl,进入build/dl下即可查看与访问相应的文件。

C. linux中什么是链接文件软链接和硬链接文件分别使用什么指令创建二者有何异同

linux系统中链接文件分为硬链接和软链接(软链接也叫符号链接)。硬链接和软链接都是指向文件的一种方式,但两者有不同的地方,主要有以下不同:

1.硬链接是创建一个指向block的inode,有防止误删除的功能。因为删除一个文件,实际上是删除inode信息,切断了inode与block之间的联系。当给一个文件做了硬链接之后,删除文件时,只会减少文件的链接数,当链接数为0时,才会彻底删除该文件。
软链接类似Windows系统的快捷方式,是一个完整的文件,有自己的inode和block,block的内容就是原文件的文件名。当原文件删除后,软链接就失效了,没有防止误删除的功能。

2.文件的大小不一样。由于硬链接是指向原文件的block,所以硬链接的文件大小和原文件大小是一致的。而软链接是新的文件,block里是原文件的的文件名,所以软链接文件的大小一般是4K,即一个block的大小。

3.硬链接不能给目录做,不能跨分区做。软链接则都可以。

创建硬链接命令:
ln file filenew #file为原文件名,filenew为新文件名。
创建软链接命令:
ln -s file filenew #file为原文件名,filenew为新文件名。

D. Linux命令:搜索系统中的所有链接文件,并复制到主目录中的link目录中。

find
/
-type
l
-print
>>out.txt这是查看所有的链接文件的,运行上面的命令后,可以查看#cat
out.txt,就知道那些是链接文件了,也可以用#ls
-l
加out.txt链接名来测试一下,至于如何复制到主目录中的link目录中,我就不太清楚了,不过你可以试试这个#find
/
-type
l
-print
-ok
cp
{}
\;
/link
我回去试试看,再说!!

E. linux如何打开链接文件

链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。
Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。
我们首先来了解一下几个名词:
索引节点(inode)
要了解链接,我们首先得了解一个概念,叫索引节点(inode)。在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每一个文件。
硬链接(Hard Link)
硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。
引用
ln [options] existingfile newfile
ln [options] existingfile-list directory

用法:
第一种为”existingfile”创建硬链接,文件名为”newfile”。
第二种在”directory”目录中,为” existingfile-list”中包含的所有文件创建一个同名的硬链接。
常用可选[options]:-f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。
软链接(Soft Link)
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。
可以用:ln -s 命令来建立软链接。
引用
ln -s existingfile newfile
ln -s existingfile-list directory

下面我们用一个实例来说明硬链接和软链接。
现在目录下有两个文件,一个名为file1,一个名为file2。
引用
$ ls –il
1052671 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:46 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2007-03-29 13:46 file2

首先先做一个file1的硬链接。
引用
$ ln file1 file1hard
$ls –il
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:46 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:46 file12
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:46 file1hard

这里我们注意在创建链接前,file1显示的链接数目为1,创建链接后
1.file1和file1hard的链接数目都变为2。
2.file1和file1的inode号是一样的,都是1052671。
3.file1和file1hard显示的文件大小也是一样,都是0B。
可见进行了ln命令的操作结果:file1和file1hard是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为 file1的文件索引节点在当前目录上建立一个新指针。你可以删除其中任何一个,如rm file1,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。
尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一些不足之处:
1.不允许给目录创建硬链接。
2.不可以在不同文件系统的文件间建立链接。
接着我们做一个指向file2的软链接,软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
引用
$ ln -s file2 file2soft
$ ls –il
总用量 0
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:34 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:35 file2
1053313 lrwxrwxrwx 1 Leanx Leanx 5 2010-03-29 13:45 file2soft -> file2
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:34 file1hard

从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是完全不同的。
区别:
1.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3.链接数目是不一样的,软链接的链接数目不会增加;
4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了,file2大小是0B,而file2soft是5B。
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

F. linux 链接文件有几种那些用户能建立

连接文件分两种:
1、硬连接:ln file link-file
2、软连接(符号连接):ln -s file link-file

G. 什么是linux下的符号链接文件

一种被称为硬链接(Hard
Link),另一种被称为符号链接(Symbolic
Link,也叫做软链接)。

H. linux怎么将一个文件夹链接到另一个文件夹上

ln -s bbb的文件目录 ccc的文件目录

In的功能是为某一个文件在另外一个位置建立一个同步的链接,命令最常用的参数是-s,具体用法是:

ln -s 源文件 目标文件

-s 是 symbolic的意思。

ln的链接有软链接和硬链接两种。

软链接就是ln -s ** **,只会在选定的位置上生成一个文件的镜像,不会占用磁盘空间。

硬链接ln
** **,没有参数-s,在选定的位置上生成一个和源文件大小相同的文件。

无论是软链接还是硬链接,文件都保持同步变化。软链接是可以跨分区的,但是硬链接只能在同一分区内。

(8)linux链接文件扩展阅读:

1、目录不能建立硬链接,但可以建立软链接。

ln-s
test_chk test_chk_ln

2、正确的删除方式(删除软链接,但不删除实际数据):

rm -rf ./test_chk_ln

3、错误的删除方式:

rm -rf ./test_chk_ln/ (这样就会把原来test_chk下的内容删除)

4、用ls查看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件。用ls
-l命令去查看,就可以看到显示的link的路径。

I. linux下的文件连接有什么作用

linux 里安装ISO文件就像windows一样,需要先加载iso里的文件,然后运行里面的文件。不同的是windows需要用虚拟光驱等软件加载ISO文件;Linux有命令直接加载ISO文件1、将iso文件拷贝到linux系统里,比如放到/opt下2、挂载ISO文件:mount -o loop /opt/a.iso /mnt/iso (后面为挂载目录,可自行创建)3、cd /mnt/iso 即可运行iso里的文件。

J. 查看linux系统中所有链接文件

find命令用于查找文件,格式为:“find [查找路径] 寻找条件 操作”。
我在书中反反复复的提到“Linux系统中的一切都是文件”,接下来您就要感受到这份力量了。咱们在Linux系统中的搜索工作一般都是通过find命令来完成的,它可以根据不同的文件特性来做为匹配项(如文件名、大小、修改时间、权限等信息),一旦匹配到了则会默认为用户显示到屏幕上来,基础的匹配项目请见下表即可,我主要讲解下“--exec”参数重要的作用,这个参数是用于将find命令搜索到的结果交由给后面的命令再进一步做处理,十分类似于咱们将在下一章中提到的管道符技术。
编辑
参数 作用
-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间-n指n天以内,+n指n天以前
-ctime -n +n 匹配修改权限的时间-n指n天以内,+n指n天以前
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新却比f2旧的文件
--type b/d/c/p/l/f 匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件)
-size 匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件)
-prune 忽略某个目录
-exec {} \; 后面可接对搜索到结果进一步处理的命令(下面会有演示)
Linux系统中的配置文件根据FHS协议会被保存到/etc目录中(第六章精讲),如果咱们要想获取到该目录中所有以host开头的文件就可以这样做:
[root@linuxprobe ~]# find /etc -name "host*" -print
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/moles/active/moles/hostname.pp
/etc/hostname

想要在整个系统中搜索所有权限中包括SUID权限的文件(第五章精讲),只需使用减号-4000即可:
[root@linuxprobe ~]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
/usr/bin/passwd
/usr/sbin/userhelper
/usr/sbin/usernetctl
参考:http://www.linuxprobe.com/chapter-02.html

热点内容
sql2008数据同步 发布:2024-11-16 02:33:46 浏览:927
sql2008sa密码 发布:2024-11-16 02:33:45 浏览:198
pr清缓存 发布:2024-11-16 02:31:28 浏览:656
ae86赛车编译环境 发布:2024-11-16 02:30:53 浏览:179
反编译游戏程序 发布:2024-11-16 02:21:56 浏览:453
androidapp调用app 发布:2024-11-16 02:20:15 浏览:668
超市管理系统sql 发布:2024-11-16 02:15:24 浏览:732
iphone百度云上传 发布:2024-11-16 01:59:04 浏览:419
公共场合ftp 发布:2024-11-16 01:28:20 浏览:227
福特悠享版有哪些配置 发布:2024-11-16 01:22:06 浏览:594