linux目录软链接,linux安装的软件在哪个目录

各位老铁们好,相信很多人对linux目录软链接都不是特别的了解,因此呢,今天就来为大家分享下关于linux目录软链接以及linux安装的软件在哪个目录的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

Linux给文件或目录创建软链接或硬链接的方法

有时Linux用户们为了使用方便,会想给电脑中的文件或目录创建软链接或硬链接。不过有些用户不清楚该怎么给这些文件或目录创建软链接或硬链接该怎么办呢?别急,现在小编就来教你解决的方法。

解决方法:

当我们需要在不同的目录下用到同一个文件时,会用到以下命令。

命令:ln

作用:为某一个文件在另外一个位置建立一个同步的链接

语法:ln[option]源文件目标文件

描述:(1)同步性:改动一处,其它链接处也会随之改变;

(2)软链接:ln-s源文件目标文件,在目标文件下建立虚拟链接(快捷键)

硬链接:ln源文件目标文件,在目标文件下创建和源文件一样大小的文件(真实存在)

常用:ln-s源文件目标文件

举例:ln-s/home/fei/workspace/var/www#在var/www文件夹里建立一个workspace的快捷键

注意:文件权限问题,前提/home/fei/workspace是可访问的。

这就是如何给Linux电脑中创建软链接或硬链接的方法了,不知道该怎么创建的用户就按照上面的方法进行创建吧。

linux下的nginx怎样设置软链接为根目录

nginx服务器绑定域名以及设置根目录非常方便,首先进入nginx安装目录,然后执行vim conf/nginx.conf打开nginx的配置文件,找到

server{

.....

.....

}

这个代码段,这段代码就是用来配置对应站点的,首先我们应该在域名控制面板将域名解析到我们服务器的IP地址,然后绑定才可以生效

首先在我们的代码段中找到server_name这一项然后把后面的域名改成我们要绑定的域名即可

root这一项就是指定的根目录,设置成我们指定的目录即可

如果我们想绑定多个域名怎么办,或者是各种二级域名,比如hao.、tools.这样的二级域名;首先还是将域名解析到服务器,然后整体复制上面server{}代码段重复粘贴到下面即可,这样构造出多个server就是多站点配置了,注意要复制全,大括号要对称,并且shell脚本中大括号和前面的语句之间必须有空格或者换行,这个很重要比如server{或者if(){等一定要注意,其他的都很容易理解;当然很多集成包中会在和配置文件nginx.conf同目录下设置一个vhost这样的代码虚拟主机的目录,对于绑定多个域名设置多个配置文件,比如aa.conf、bb.conf这些文件,然后在nginx.conf使用include vhost/*.conf;全部引入,引入相当于所有代码写在nginx.conf中一样,并且不用考虑其他目录的关系,都以nginx.conf为准,这样方便管理,比如aa.conf;

其他规则配置也可以像上面一样建立多个文件的方式统一管理,全部配置完毕保存退出,然后重新启动服务器即可生效了

另外listen指定的就是站点端口,可以在不冲突的前提下自定义配置,server_name指定域名、index指定默认首页、root指定根目录就够了,这样基本的这些配置就能够掌握了

Linux中文件与目录对应的硬链接与软链接方式总结

硬链接

新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用。

硬链接特征:

1、拥有相同的 i节点和相同的存储block快,可以看做是同一个文件

2、可通过i节点识别,i节点号相同

3、不能跨分区

4、不能针对目录使用

5、删除文件,硬链接正常使用

软链接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

软链接特征:

1、类似windows快捷方式

2、软链接拥有自己的i节点和block快,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据

3、lrwxrwxrwx l软链接,软链接文件权限都为rwxrwxrwx,但具体看原文件的权限

4、修改任意文件,另一个都改变

5、删除原文件,软链接不能使用

6、创建软链接一定要写绝对路径

注意软链接的文件权限为777但是最终权限有源文件决定 l表示软链接文件。

一旦源文件删除,软链接将不能使用。(这是和硬链接的主要区别)

注:创建软链接时,源文件要始终使用绝对路径,否则,若创建的软链接和源文件不在同一个目录时,会找不到源文件。(硬链接不会有这种情况)

限制少,更灵活,推荐使用。

补充:

linux系统中的硬连接有两个限制:不能跨越文件系统和不允许普通用户对目录作硬连接。至于第一个限制,很好理解,而第二个就不那么好理解了。对任何一个目录用ls-l命令都可以看到其连接数至少是2,这也说明了系统中是存在硬连接的,而且命令ln-d也可以让超级用户对目录作硬连接,这些都说明了系统限制对目录进行硬连接只是一个硬性规定,并不是逻辑上不允许或技术上的不可行。那么操作系统为什么要进行限制呢?答案可能有两个。

先来说第一个,如果引入了对目录的硬连接就有可能在目录中引入循环,那么在目录遍历的时候系统就会陷入无限循环当中。也许您会说,符号连接不也可以引入循环吗,那么为什么不限制目录的符号连接呢?原因就在于在linux系统中,每个文件(目录也是文件)都对应着一个inode结构,其中inode数据结构中包含了文件类型(目录,普通文件,符号连接文件等等)的信息,也就是说操作系统在遍历目录时可以判断出符号连接,既然可以判断出符号连接当然就可以采取一些措施来防范进入过大的循环了,系统在连续遇到8个符号连接后就停止遍历,这就是为什么对目录符号连接不会进入死循环的原因了。但是对于硬连接,由于操作系统中采用的数据结构和算法限制,目前是不能防范这种死循环的。

在说明第二个原因之前,先来看看文件的dentry结构在系统空间中长什么样子和它们是怎么存放在系统空间的。dentry结构主要包含了文件名,文件的inode号,指向父目录dentry结构的指针和其他一些与本次讨论无关的指针,这里关键是那个指向父目录的指针;系统中所有的dentry结构都是按杂凑值存放在杂凑表中的,这里的杂凑算法很重要,它是取文件名和文件的父目录dentry结构的地址一起杂凑运算出杂凑值的。现在假设有两个目录/a和/b,其中/b是我们通过ln-d命令建立起来的对/a的硬连接。这个时候内核空间中就会存在一个/a的dentry结构和一个/b的dentry结构,由上面的知识可知,/a和/b目录下面的每一个文件或目录都各自有对应的dentry结构(因为虽然/a目录下面的文件名没有改变,但是因为dentry结构有指向父目录dentry的指针和计算杂凑值时考虑了父目录dentry结构的地址,这个时候dentry结构就分身乏术了),而且这种继承还会影响到所有子目录下面的文件,这样下来就会浪费很多系统空间了,特别是如果被硬连接的目录中存在大量文件和子目录的时候就更加明显了。这也许是第二个原因。

阅读剩余
THE END