大竹县国示建设专题网站,小程序开发问题,网络广告营销环境发生了哪些变化,淘宝网站首页是用什么软件做的文章目录
ln
命令介绍
命令格式
基本参数
参考实例
1#xff09; 创建文件的硬链接
2#xff09;创建文件的软链接
3#xff09;创建链接文件时#xff0c;相同目标文件创建备份文件
命令总结
ln
命令介绍 先看下帮助文档中的含义 NAME ln - make links …文章目录
ln
命令介绍
命令格式
基本参数
参考实例
1 创建文件的硬链接
2创建文件的软链接
3创建链接文件时相同目标文件创建备份文件
命令总结
ln
命令介绍 先看下帮助文档中的含义 NAME ln - make links between files lnlink命令的主要功能是给源文件建立一个链接文件系统中存在两种链接文件一个是硬链接hard link一个是软连接symbolic link。 硬链接硬链接的原理就是多个文件名指向同一个inode因此多个文件名公用一个inode号达到共享和备份的目的即使将源文件删除硬链接文件依然可以指向block读取该文件的数据但硬链接只能针对文件进行操作无法对目录建立硬链接也不能进行跨分区建立。软链接可以理解成是windows中的快捷方式建立软链接之后是重新生成一个新的inode号软链接文件增加信息源文件信息也会跟着修改如果将源文件删除了那么软链接也会跟着失效优势是可以对文件和目录进行操作也可进行跨分区建立。命令格式
命令的语法格式ln 【参数】【源文件】【目标文件】 SYNOPSIS ln [OPTION]... [-T] TARGET LINK_NAME (1st form) ln [OPTION]... TARGET (2nd form) ln [OPTION]... TARGET... DIRECTORY (3rd form) ln [OPTION]... -t DIRECTORY TARGET... (4th form) 基本参数
先看下命令的参数有哪些表格形式显示
-b为已存在的目标文件创建备份文件-d允许root用户尝试创建硬链接目录由于系统限制大概率会失败-f强制覆盖现有的目标文件-n把指向目录的符号链接视为一个普通文件-i提示是否删除目录文件-s对源文件建立符号链接快捷方式
参考实例
1 创建文件的硬链接
创建文件的硬链接后可以看到源文件和目标文件的inode号是一致的并且文件的链接数是2。
[rootlocalhost ~]# cd data
[rootlocalhost data]# ll
总用量 0
[rootlocalhost data]# touch a.txt
[rootlocalhost data]# ln a.txt b.txt
[rootlocalhost data]# ll
总用量 0
-rw-r--r--. 2 root root 0 2月 28 15:44 a.txt
-rw-r--r--. 2 root root 0 2月 28 15:44 b.txt
[rootlocalhost data]# ll -i
总用量 0
67259420 -rw-r--r--. 2 root root 0 2月 28 15:44 a.txt
67259420 -rw-r--r--. 2 root root 0 2月 28 15:44 b.txt测试一创建文件的硬链接后删除源文件看看对硬链接文件有没有影响
首先先往文件中写入一些内容让它成为一个有数据的文件。
[rootlocalhost data]# echo hello world a.txt
[rootlocalhost data]# cat b.txt
hello world
[rootlocalhost data]# cat a.txt
hello world
[rootlocalhost data]# rm -f a.txt
[rootlocalhost data]# echo this is centos7.9 b.txt
[rootlocalhost data]# cat b.txt
hello world
this is centos7.9
[rootlocalhost data]# ll -hi b.txt
67259420 -rw-r--r--. 1 root root 30 2月 28 15:48 b.txt删除源文件后硬链接文件完全不受影响依然可以往其中写入内容只是链接数变回了1。
测试二对目录创建硬链接看是否能创建
可以看到加上了-d参数还是不能创建硬链接目录
[rootlocalhost data]# ln -d test test1
ln: 无法创建硬链接test1 test: 不允许的操作测试三把文件的硬链接放到/dev目录
结果显示无法创建硬链接这个是因为硬链接无法进行目录跨分区实现建立因为每个分区都有自己独立的INODE编号。
[rootlocalhost data]# ll
总用量 4
-rw-r--r--. 1 root root 30 2月 28 15:48 b.txt
drwxr-xr-x. 2 root root 6 2月 28 15:52 test
[rootlocalhost data]# ln b.txt /dev/b.txt
ln: 无法创建硬链接/dev/b.txt b.txt: 无效的跨设备连接[rootlocalhost data]# df -ih
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs 488K 351 488K 1% /dev
tmpfs 492K 1 492K 1% /dev/shm
tmpfs 492K 1.4K 491K 1% /run
tmpfs 492K 16 492K 1% /sys/fs/cgroup
/dev/mapper/centos-root 18M 130K 18M 1% /
/dev/sda1 512K 340 512K 1% /boot
tmpfs 492K 22 492K 1% /run/user/0
/dev/sr0 0 0 0 - /run/media/root/CentOS 7 x86_642创建文件的软链接
创建软链接就需要加上-s的参数才行
[rootlocalhost data]# touch c.txt
[rootlocalhost data]# ln -s c.txt d.txt
[rootlocalhost data]# ll d.txt
lrwxrwxrwx. 1 root root 5 2月 28 16:07 d.txt - c.txt创建好之后会显示d.txt文件指向了c.txt当然可以看ll显示的文件类型这里显示的文件类型是链接文件。
测试一创建文件的软链接后删除源文件看看对软链接文件有没有影响
还是一样先写入一些内容到文件里
[rootlocalhost data]# touch c.txt
[rootlocalhost data]# ln -s c.txt d.txt
[rootlocalhost data]# ll -i c.txt d.txt
67259384 -rw-r--r--. 1 root root 9 2月 28 16:17 c.txt
67259421 lrwxrwxrwx. 1 root root 5 2月 28 16:17 d.txt - c.txt
[rootlocalhost data]# echo hello world d.txt
[rootlocalhost data]# rm -f c.txt
[rootlocalhost data]# ll -h d.txt
lrwxrwxrwx. 1 root root 5 2月 28 16:17 d.txt - c.txt
[rootlocalhost data]# cat d.txt
cat: d.txt: 没有那个文件或目录对比源文件和软连接文件的inode号是不一样的删除了源文件也就意味着链接文件失效了里面的内容也查看不到。
测试二对目录创建软链接看是否能创建
目录是无法创建硬链接的看下能否创建软连接
[rootlocalhost data]# mkdir test
[rootlocalhost data]# ln -s test test_dir
[rootlocalhost data]# ll -id test test_dir421301 drwxr-xr-x. 2 root root 6 2月 28 16:25 test
67259384 lrwxrwxrwx. 1 root root 4 2月 28 16:25 test_dir - test答案是肯定的软链接是可以对目录进行创建的创建出来的inode号是不相同的。
测试三把文件的软链接放到/dev目录
前面有测试过硬链接是不能跨分区创建的现在来看下软链接是否可行。
[rootlocalhost data]# ln -s test /dev/test_dir
[rootlocalhost data]# ll -id /dev/test_dir
107112 lrwxrwxrwx. 1 root root 4 2月 28 16:28 /dev/test_dir - test
[rootlocalhost data]# ll
总用量 0
drwxr-xr-x. 2 root root 6 2月 28 16:25 test
lrwxrwxrwx. 1 root root 4 2月 28 16:25 test_dir - test
[rootlocalhost data]# touch a.txt
[rootlocalhost data]# ln -s a.txt /dev/a.txt
[rootlocalhost data]# ll -i /dev/a.txt
107625 lrwxrwxrwx. 1 root root 5 2月 28 16:28 /dev/a.txt - a.txt可以在其他分区创建软连接。
3创建链接文件时相同目标文件创建备份文件
相同的目标文件备份后会在同名称后加上一个“~”符号
[rootlocalhost data]# touch test/1.txt
[rootlocalhost data]# touch 1.txt
[rootlocalhost data]# ln -b 1.txt test/1.txt
[rootlocalhost data]# ll test
总用量 0
-rw-r--r--. 2 root root 0 2月 28 16:34 1.txt
-rw-r--r--. 1 root root 0 2月 28 16:34 1.txt~命令总结 ln命令的硬链接其实可以看做是复制只不过复制的是inode号而软链接则是文件的快捷方式出现一旦源文件删除了快捷方式也会随之失效。若觉得以上内容还行的可以点赞支持一下