xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 新濠国际登录平台 2019-11-10 13:52 的文章
当前位置: 新濠国际登录平台 > 新濠国际登录平台 > 正文

新濠国际登录平台直到文件的链接数为 0,例如

ln命令用来为文件创件链接,链接类型分为硬链接和软链接(符号链接)两种

里提示一下:ubuntu的翻译很多都是字面直译,存在很多问题,所以建议大家参照我这里的解释。当然本来也是有些赶文的嫌疑,望指正。

一.创建文件

  使用touch 可以创建空文件,例如opt目录下创建test2.txt文件。这种一般是有些程序必须要先创建文件,才能使用。
        新濠国际登录平台 1

Linux 硬链接与软链接,linux链接

在 Linux 的文件系统中,磁盘块分成了 3 个部分。一部分称为数据区,用来存放文件内容。另一部分称为 inode 表,用来存放文件属性。第三部分称为超级块,用来存放文件系统本身的属性。文件的内容和属性分开存放,文件的属性存储在一个称为 inode 的数据结构中,inode 存放在 inode 表里,每个 inode 有一个唯一的编号对应其在 inode 表中的位置。

Linux 中有两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接也称为符号链接(Symbolic Link)。

 

1)软连接和Windows系统中的快捷方式有点类似

经常在linux上操作,有在不同的目录下切换某几个固定的命令,或者修改几个固定的文件,这时候,如果能在一个目录下就操作他们,会是一件多么轻松的事情。我们来看看链接命令ln

二. 复制文件

  2.1 使用cp命令来复制文件,需要两个参数-----源对象和目标对象。例如在opt目录下将test2.txt复制一份为test3.txt。
        新濠国际登录平台 2

  2.2 使用cp –R参数,可以一条命令将整个目录内容递归复制,例如将/opt目录及目录下所有文件复制到/usr下, 查看 /usr/opt 内容已全部复制过来。
        新濠国际登录平台 3

      下面是删除/usr/opt目录及目录下所有文件

         新濠国际登录平台 4

   2.3 也可以在cp命令中使用通配符,例如将opt目录下的以.txt结尾的文件全部复制到/usr目录下。
        新濠国际登录平台 5

硬链接

硬链接其实已存在文件的另一个名字,链接与原来的文件并没有什么区别,它们共享一个 inode,而 inode 包含了一个文件的所有属性。当为一个文件创建硬链时,内核不会分配新的 inode。

[email protected]:~/huey/linux/cmdline$ touch f1
[email protected]:~/huey/linux/cmdline$ ln f1 f1-hard
[email protected]:~/huey/linux/cmdline$ ls -li
total 0
10272788 -rw-rw-r-- 2 ng ng 0 Apr 20 15:28 f1
10272788 -rw-rw-r-- 2 ng ng 0 Apr 20 15:28 f1-hard

系统并没有为 f1-hard 分配新的 inode,f1-hard 的 inode 与 f1 一致,这说明了它们是同一个文件的两个名字。创建链接后,f1 和 f1-hard 的链接数也由 1 增加到 2。再看看使用 rm 命令的过程:

[email protected]:~/huey/linux/cmdline$ ls -li
total 0
10272788 -rw-rw-r-- 2 ng ng 0 Apr 20 15:33 f1
10272788 -rw-rw-r-- 2 ng ng 0 Apr 20 15:33 f1-hard
[email protected]:~/huey/linux/cmdline$ rm f1
[email protected]:~/huey/linux/cmdline$ ls -li
total 0
10272788 -rw-rw-r-- 1 ng ng 0 Apr 20 15:33 f1-hard
[email protected]:~/huey/linux/cmdline$ rm f1-hard
[email protected]:~/huey/linux/cmdline$ ls -li
total 0

当删除文件的时候,系统只是将文件的链接数减一,直到文件的链接数为 0 时,系统才会将磁盘的文件内容删除。

硬链接有两个重要的限制:
1) 硬链接不能引用自身文件系统之外的文件。即链接不能引用与该链接不在同一磁盘分区的文件。
2) 硬链接不能引用目录(有些 Linux 版本允许超级用户使用 -d 选项创建引用目录的链接)。

 

2)硬链接,相当于多了一个文件名指向同一块内存空间,目录无法创建硬链接,不可以跨文件系统创建

全称

 三.  制表键自动补全  

    当命令字符太长,很容易输错命令。可以使用tab键自动补全。例如关机命令shutdown。可以按下shut按tab来补全,文件目录太长用法也是一样。自动补全在于要给shell足够的信息,使其与其他名字区别。

    如果按下tab无法补全,可以再按一下tab,将显示以输入命令开头的文件名,例如输入sh, 按一下tab没有作用,再按一下tab,将显示sh开头的所有信息。
        新濠国际登录平台 6

符号链接

符号链接是为了克服硬链接的局限性而创建的。符号链接是通过创建一个特殊类型的文件来起作用的,该文件包含了指向引用文件或目录的文本指针。从这点来看,符号链接与 Windows 的快捷方式很相似。符号链接指向的文件与符号链接自身几乎没有区别。例如,将一些内容写进符号链接里,那么这些内容同样也写进了引用文件。而当删除一个符号链接时,删除的只是符号链接而没有删除引用文件。如果先于符号链接之前删除引用文件,那么这个链接依然存在,但是不指向任何文件。此时,这个链接就称为坏链接。ls 命令一般会用不同的颜色来显示坏链接,比如红色。

软链接相比硬链接有个不足的地方是:由于软链接包含引用文件的路径信息,所以如果引用文件移动到其他目录,链接则变成一个坏链接。

 

 新濠国际登录平台 7

ln 全称是link 顾名思义,这是一个建立一个链接。怎么去理解呢?它的功能类似于Mac OS的别名或者Windows的快捷方式, 删除不会影响文件本身。

 四.链接文件 ln(共享文件)   

    链接文件是linux文件系统的一个优势,如需要在系统上维护同一个文件的两份或多份副本,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。虚拟副本叫链接。链接是目录中指向文件真实位置的点位符。分二种类型文件链接类型: 一是符号链接又叫软链接, 二是硬链接。
    4.1 符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件,这两个通过符号链接在一起的文件,彼此的内容并不相同。

      使用ln命令以及-s选项来创建符号链接,下面是在etc目录下,给my.cnf创建符号链接在本目录。
      新濠国际登录平台 8

      如下所示:ls_my.cnf只有6字节,它只是指向my.cnf而已。
      新濠国际登录平台 9

      尝试随意使用vim修改某个配置个文件,都会在另一文件中修改,因为是符号链接。
      新濠国际登录平台 10

      链接文件为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。

    4.2 硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置,引用硬链接文件等同于引用了源文件。ln命令不需要加额外参数。

      使用ln命令来创建硬链接,还是使用etc下的my.cnf来演示:
      新濠国际登录平台 11

      上图使用了ls –li 命令显示了inode编号,列表第一列(文件的唯一标识,它用来区别同一个文件而非是文件名来区别)以及长列表。带有硬链接的文件共享inode编号。因为它们终归是同一个文件,链接计数显示2(列表中第三项),显示两个文件都有两个链接,另外它们文件大小也一模一样。

      新濠国际登录平台 12

      尝试随意某个配置文件,都会在另一文件中修改,因为是一个完全相同的副本. 是一个 inode 号对应多个文件名, 硬链接就是同一个文件使用了多个别名

总结:

  硬链接以下几点特性:

    文件有相同的 inode;

    只能对已存在的文件进行创建;

    不能交叉文件系统进行硬链接的创建;

    不能对目录进行创建,只可对文件创建;

    删除一个硬链接文件并不影响其他有相同 inode 号的文件;

  软链接以下几点特性:

    软链接有自己的文件属性及权限等;

    可对不存在的文件或目录创建软链接;

    软链接可交叉文件系统;

    软链接可对文件或目录创建;

    创建软链接时,链接计数 i_nlink 不会增加;

    删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)

 

ln 命令格式

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)

 

 

说明:(直接看看斜体,就行了)

ln 命令参数

--backup[=CONTROL]
  如果指定的链接名已经存在,为该同名文件创建备份文件

-b
  类似 --backup 选项,但不接受参数。

-d, -F, --directory
  允许超级用户创建目录的硬链接(注:由于系统限制很有可能会失败,即使是超级用户)

-f, --force
  如果指定的链接名已经存在,则覆盖该同名文件

-n, --no-dereference
  如果指定的链接名是一个引用目录的符号链接,则将其当作是普通文件

-i, --interactive
  如果指定的链接名已经存在,提示是否覆盖该同名文件

-s, --symbolic
  创建符号链接而非硬链接

-S, --suffix=SUFFIX
  使用 SUFFIX 作为备份文件的后缀

-v, --verbose
  显示链接过程的信息

--help display this help and exit
  打印帮助信息

--version
  打印版本信息

 

删除文件名不影响硬链接与文件的使用,但软链接却无法继续使用

链接可分为两种:硬链接(hard link)与软链接(symbolic link),

ln 实例

a) 创建硬链接

ln testfile testfile-hard

b) 创建符号链接

ln -s testfile testfile-sym

c) 强制创建链接,如果指定的链接名已经存在,则覆盖该同名文件

ln -f testfile testfile-hard

d) 为被覆盖的文件创建备份

ln -bf testfile testfile-hard

e) 为被覆盖的文件创建备份,并以 ".~[num]~" 作为后缀

ln -f --backup=numbered testfile testfile-hard

f) 为被覆盖的文件创建备份,并指定备份文件的后缀为 ".bak"

ln -bf -S '.bak' testfile testfile-hard

 

1、用法

不论是那种类型的链接, 都提供了一种双向引用的手段 -- 也就是说, 不管你用文件的那个名字对文件内容进行修改, 你修改的效果都即会反映到原始名字的文件, 也会反映到链接名字的文件.当你工作在更高层次的时候, 才会发生软硬链接的不同. 硬链
 接的优点是, 原始文件与链接文件之间是相互独立的 -- 如果你删除或者重命名老文件, 那么这种操作将不会影响硬链接的文件, 硬链接的文件讲还是原来文件的内容.
然而如果你使用软链接的, 当你把老文件删除或重命名后, 软链接将再也找不到原来文件的内容了. 而软链接的优点是它可以跨越文件系统(因为它只不过是文件名的一个引用, 而并不是真正的数据). 与硬链接的另一个不同是, 一个符号链接可以指向一个
 目录.

ln 的 -n 选项

使用 man ln 命令,-n 选项的释义是 "treat destination that is a symlink to a directory as if it were a normal file",如何理解?

假设有 a、b 两个目录,还有一个指向 a 目录的软链接 c:

[email protected]:~/huey/linux/cmdline$ mkdir a b
[email protected]:~/huey/linux/cmdline$ ln -s a c

现在如果要使软链接 c 改为指向 b 目录而执行下面这条命令:

[email protected]:~/huey/linux/cmdline$ ln -sf b c

这并不能达到预期的效果,而是会在 c 的引用目录(即 a 目录)里创建 b 目录的软链接。这种情况下, -n 选项会将软链接 c 当作一个普通文件而被覆盖:

[email protected]:~/huey/linux/cmdline$ ln -sfn b c

 

硬链接与软链接,linux链接 在 Linux 的文件系统中,磁盘块分成了 3 个部分。一部分称为数据区,用来存放文件内容。另一部分称为 i...

ln [选项]新濠国际登录平台, [源文件或目录] [目标文件或目录]

例子:

2、命令选项

1.$ln file.txt  file.copy

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

file.copy就是 file.txt的一个快捷方式

本文由新濠国际登录平台发布于新濠国际登录平台,转载请注明出处:新濠国际登录平台直到文件的链接数为 0,例如

关键词: