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

账号usera有个文件夹,userb能直接访问usera的aaa文件夹。
现在usera想把另一个文件夹bbb分享给userb,bbb藏在一个非常深的路径里。
于是usera想直接在aaa下面建个新的文件夹叫ccc,然后把ccc指向bbb。
这样userb点ccc,就直接走到bbb里面了。
清楚了么?

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

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

ln -s  源文件 目标文件    

-s 是 symbolic的意思。 

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

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

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

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

扩展资料:

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的路径。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-07
linux
链接分为硬链接和软链接之分,命令如下:
1、硬链接:ln
file1
file2
2、软连接:ln
-s
file1
file2
他们的区别在于,对于目录
只能做软链接
(ln
-s
bbb
ccc)
Linux
软连接与硬连接的区别:
对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘
...都可以看着文件来处理的啊。
连接有软连接和硬连接(hard
link)之分的,软连接(symbolic
link)又叫符号连接。符号连接相当于Windows下的快捷方式。
不可以对文件夹建立硬连接的,我们通常用的还是软连接比较多。
eg:
ln
-s
source
dist
#
建立软连接
ln
source
dist
#
建立硬连接
软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理;相反,硬联接为文件开设一个新的目录项,硬链接与文件原有的名字是平权的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不同文件系统上的文件。
(1)软连接可以
跨文件系统
,硬连接不可以
。实践的方法就是用共享文件把windows下的
aa.txt文本文档连接到linux下/root目录

bb,cc
.
ln
-s
aa.txt
/root/bb
连接成功
。ln
aa.txt
/root/bb
失败

(2)关于
I节点的问题
。硬连接不管有多少个,都指向的是同一个I节点,会把
结点连接数增加,只要结点的连接数不是
0,文件就一直存在,不管你删除的是源文件还是
连接的文件
。只要有一个存在
,文件就
存在
(其实也不分什么源文件连接文件的
,因为他们指向都是同一个
I节点)。
当你修改源文件或者连接文件任何一个的时候
,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以
删除连接文件
对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件
。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.
(3)软连接可以对一个不存在的文件名进行连接

(4)软连接可以对目录进行连接。
备注:I节点
:它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息
1.文件类型
2.文件属主关系
3.文件的访问权限
4.文件的时间截.
第2个回答  推荐于2017-05-21
linux 链接分为硬链接和软链接之分,命令如下:
1、硬链接:ln file1 file2
2、软连接:ln -s file1 file2

他们的区别在于,对于目录 只能做软链接 (ln -s bbb ccc)

Linux 软连接与硬连接的区别:

对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊。
连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows下的快捷方式。
不可以对文件夹建立硬连接的,我们通常用的还是软连接比较多。

eg:
ln -s source dist # 建立软连接
ln source dist # 建立硬连接
软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理;相反,硬联接为文件开设一个新的目录项,硬链接与文件原有的名字是平权的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不同文件系统上的文件。
(1)软连接可以 跨文件系统 ,硬连接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功 。ln aa.txt /root/bb 失败 。
(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加,只要结点的连接数不是 0,文件就一直存在,不管你删除的是源文件还是 连接的文件 。只要有一个存在 ,文件就 存在 (其实也不分什么源文件连接文件的 ,因为他们指向都是同一个 I节点)。 当你修改源文件或者连接文件任何一个的时候 ,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.
(3)软连接可以对一个不存在的文件名进行连接 。
(4)软连接可以对目录进行连接。
备注:I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.追问

你提到,文件夹只能用软链接是么?
但是前面有朋友说到,使用软链接的话,删除ccc后bbb也不存在了?

我想保留usera对bbb的写权限,因为这个文件夹本来就是usera的;但是userb应该能够删除ccc,毕竟这个文件夹是在userb的home目录下。
这样的需求没有办法实现,是么?

追答

对于文件夹只能用软链接,说明如下:

如果使用 hard link 链接到目录时, 链接的数据需要连同被链接目录底下的所有数据都创建链接,举例来说,如果你要将 /etc 使用实体链接创建一个 /etc_hd 的目录时,那么在 /etc_hd 底下的所有档名同时都与 /etc 底下的档名要创建 hard link 的,而不是仅连结到 /etc_hd 与 /etc 而已。 并且,未来如果需要在 /etc_hd 底下创建新文件时,连带的, /etc 底下的数据又得要创建一次 hard link ,因此造成环境相当大的复杂度。 所以啰,目前 hard link 对于目录暂时还是不支持的啊!

(---摘自鸟哥linux私房菜)

对于你说的需求,你可以做到让usera 和userb 都可以读、写、执行bbb 目录中的文件,但是只有usera可以删除bbb这个目录,而userb则不能删除bbb目录。
方法:把bbb的上级目录设置成usera 属主,userb 属组,并递归 “-R”

参考:
比方说,你进去需要删除的目录,目录内的文件肯定是可以删除的。只有要删除整个目录,则需要目录的上一级目录(父目录)的w权限。如果没有估计错误的话,你需要删除的上一级目录肯定是没有w权限的。

本回答被网友采纳
第3个回答  2013-02-26
ln -s ccc bbb这是软连接,删除ccc后bbb也就不存在了
ln ccc bbb 这是硬连接,删除ccc后bbb依然存在
依你的需求选择合适的追问

我那都是文件夹,硬链接可以用么?

第4个回答  2013-02-26
有2种方法:
1、硬链接:ln file1 file2
2、软连接:ln -s file1 file2
注意:要都写绝对路径追问

我那都是文件夹,硬链接可以用么?

相似回答