linux文件软链接与硬链接

1.命令格式:

 ln [参数][源文件或目录][目标文件或目录]

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

2.命令功能:

Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

软链接:

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接

硬链接:

1.硬链接,以文件副本的形式存在。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建。

这里有两点要注意:

第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间;硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

3.命令参数:

必要参数:

-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程


选择参数:

-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”

-V “-V<备份方式>”或“--version-control=<备份方式>”

--help 显示帮助信息

--version 显示版本信息

4.使用实例

文件结构:

├── curls
│   ├── try3.cpp
├── main.cpp │ ├── try4 │ │ ├── main.h

实例1:给文件创建软链接

input:
lzb@lzb:~/projects/curls/try3$ ln -s main.h min
output:
lzb@lzb:~/projects/curls/try3$ ll
总用量 12
drwxrwxr-x  2 lzb lzb 4096 6月  17 10:12 ./
drwxrwxr-x 11 lzb lzb 4096 6月  17 10:11 ../
-rw-rw-r--  1 lzb lzb  114 6月  17 09:56 main.h
lrwxrwxrwx  1 lzb lzb    6 6月  17 10:12 min -> main.h

实例2:给目录创建软链接

lzb@lzb:~/projects/curls/try3$ ln -sv ~/projects/curls/try4 ~/projects/curls/try3
lzb@lzb:~/projects/curls/try3$ ll
总用量 24
drwxrwxr-x  2 lzb lzb 4096 6月  17 10:22 ./
drwxrwxr-x 11 lzb lzb 4096 6月  17 10:11 ../
-rwxrwxr-x  1 lzb lzb 8688 6月  17 10:22 a.out*
-rw-rw-r--  1 lzb lzb  100 6月  16 23:58 main.cpp
lrwxrwxrwx  1 lzb lzb   29 6月  17 10:20 try4 -> /home/lzb/projects/curls/try4/

说明:

1.目录只能创建软链接
2.目录创建链接必须用绝对路径,相对路径创建会不成功,会提示:符号连接的层数过多 这样的错误
3.在链接目标目录中修改文件会在源文件目录中同步变化

实例3:给文件创建硬链接

lzb@lzb:~/projects/curls/try4$ ln main.h min
lzb@lzb:~/projects/curls/try4$ ll
总用量 16
drwxrwxr-x  2 lzb lzb 4096 6月  17 10:29 ./
drwxrwxr-x 11 lzb lzb 4096 6月  17 10:11 ../
-rw-rw-r--  4 lzb lzb  114 6月  17 10:16 main.h
-rw-rw-r--  4 lzb lzb  114 6月  17 10:16 min

实例4:将文件硬链接为另一个目录中

lzb@lzb:~/projects/curls/try4$ ln main.h ~/projects/curls/try3/min
lzb@lzb:~/projects/curls/try3$ ll
总用量 16
drwxrwxr-x  2 lzb lzb 4096 6月  17 10:34 ./
drwxrwxr-x 11 lzb lzb 4096 6月  17 10:11 ../
-rw-rw-r--  1 lzb lzb  100 6月  16 23:58 main.cpp
-rw-rw-r--  5 lzb lzb  114 6月  17 10:16 min
lrwxrwxrwx  1 lzb lzb   29 6月  17 10:20 try4 -> /home/lzb/projects/curls/try4/

说明:

1.源文件被删除后,并没有影响硬链接文件;软链接文件失效。

2.重建源文件后,软链接成功,找到了链接文件系统;然而硬链接文件并没有受到源文件影响,硬链接文件的内容还是保留了删除前源文件的内容,说明硬链接已经失效。

转载于:https://www.cnblogs.com/liuzhenbo/p/11038340.html

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

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

相关文章

java操作Excel的poi 遍历一个工作簿

遍历一个工作簿 package com.java.poi;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.…

PHP 一个比较完善的文件上传(转).

转点别人的代码&#xff0c;留着自己用&#xff01;<HTML> <HEAD> <TITLE>文件上传</TITLE> <meta http-equiv"Content-Type" content"text/html; charsetgb2312"></HEAD> <BODY> <?$UploadedFile$_FILES[U…

mysql 删除记录代码_mysql 删除记录时报错

在sql命令行,删除一条记录时,发现一个很奇怪的错误下面的语句是可以正常执行的:delete from t_mid_test_convention where convention_id33;但是下面的报语法错:delete from t_mid_test_convention as mt2 where mt2.convention_id33;mysql>mysql> delete from t_mid_tes…

git 回滚 add 操作_炫技!git 优雅回滚一次错误的合并操作!

点击蓝色小字关注!关注一下你就不会有bug&#xff01;合并操作相对于常规的 commit&#xff0c;当使用 git merge 合并两个分支的时候&#xff0c;你会得到一个新的 merge commit。当我们 git show 的时候会出现类似信息&#xff1a;1commit 6dd0e2b9398ca8cd12bfd1faa1531d86d…

最长非单调增序列(最长非单调增序列,,要用N*LOG N(非常值得琢磨的算法。)...

http://acm.pku.edu.cn/JudgeOnline/problem?id1887 &#xff08;最长非单调增序列&#xff0c;&#xff0c;要用N*LOG N&#xff08;不然会超时。&#xff09;&#xff09; 二分模板&#xff1a; int Find(int a,int end) { if(a>ans[1])return 1; for(int beg1;beg!end-1…

Spring中抛出异常时,既要要返回错误信息,还要做事务回滚

情况一&#xff1a;如果没有在程序中手动捕获异常&#xff0c;如下代码事务会回滚 Transactional(rollbackFor { Exception.class }) public void test() throws Exception { doDbStuff1(); doDbStuff2();//假如这个操作数据库的方法会抛出异常&#xff0c;方法doDb…

PS教程第十八课:放大缩小

导航器进行放大缩小操作

java mysql show status_Java 能不能执行mysql 中的show master status 命令

展开全部详细参32313133353236313431303231363533e4b893e5b19e31333337376263考文章&#xff1a;http://www.yuanxingyuan.com/?id18可以的&#xff0c;使用Statement 的 executeQuery&#xff0c;示例代码&#xff1a;public static List getDBMasterStatus() {List status…

git bash卡顿解决

清理windows临时目录可以解决&#xff0c;参见 http://blog.itpub.net/267265/viewspace-2287069/转载于:https://www.cnblogs.com/ShiningWay/p/11042645.html

[Gamma阶段]展示博客

水哥牛X团队[Gamma阶段]展示博客 微信小程序搜索“小小易校园”即可体验 项目愿景 想参加竞赛&#xff0c;锻炼自己&#xff0c;却找不到合适的队友想进行实习&#xff0c;体验工作&#xff0c;每天不得不翻遍吐槽版的几百条信息却一无所获发布在吐槽版的“求组队”被聊天淹没&…

删除sessionstorage_localStorage 和 sessionStorage 介绍

一、 简述sessionStorage 和 sessionStorage 是 HTML5 新增的两个特性&#xff0c;这两个特性主要是用来作为会话存储和本地存储来使用的&#xff0c;解决了 cookie 存储空间不足的问题&#xff1b;sessionStorage 属性允许你访问一个 session Storage 对象&#xff0c;用于存储…

游标的使用方法

游标的使用方法 select * from aselect * from b declare Mycursor CURSORfor select * from b open Mycursor declare stuID nchar(10)declare math smallint fetch next from Mycursorinto stuID,math while(FETCH_STATUS 0)begin update a set math math where stuID stu…

查看zookeeper版本

命令 echo stat|nc localhost 2181 zookeeperkafka-zookeeper-0:/$ echo stat|nc localhost 2181 Zookeeper version: 3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMTClients: /127.0.0.1:54002[0](queued0,recved1,sent0) /10.244.5.242:55…

redis springmvc mysql_redis和mysql怎么一起在springmvc里面

展开全部一、mysql集成到springMVC中的方法&#xff1a;1、在SRC目录下创建一个32313133353236313431303231363533e4b893e5b19e31333361323538db-config.properties文件来存放我们的数据源配置信息&#xff1a;db.url jdbc:mysql:///springmvcdb?useUnicodetrue&character…

[jQuery] 针对jQuery的优化方法有哪些?

[jQuery] 针对jQuery的优化方法有哪些&#xff1f; 1.使用选择器尽量选用id选择器和元素选择器:因为遇到这些选择器的时候,jquery会自动调用浏览器的原生方法比如(document.getElementById()),所以他们的执行速度快.根据图中可以看出ID选择器执行速度最快,其次是元素选择器,然后…

二代CMS旅游网站程序国际版开发中(支持英文、法文等),支持拓展语言包

二代CMS旅游网站程序国际版开发中&#xff08;支持英文、法文、德文等&#xff09;&#xff0c;支持拓展语言包&#xff0c;理论上可以拓展成任何一种语言&#xff0c;前端和后端都支持在线语言切换&#xff0c;前端还支持支付货币的币种切换&#xff0c;敬请期待&#xff01;转…