LINUX中,使多个文件名指向同一个索引节点是通过什么命令实现的,并说明该命令的用法

作者&投稿:琦章 (若有异议请与网页底部的电邮联系)
linux下如何给多个文件同时改名啊?~

使用硬链接
先看概念:通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(InodeIndex)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。
由于指向同一个节点,所以改变一个,其他的也会随之改变。 不过你得先建立硬链接。如下是对文件 oldfile 创建硬链接:
link oldfile newfile ln oldfile newfile
使用脚本来进行批处理
在一个脚本里面添加多条 rm 或 remove 命令,然后运行这个脚本,以后就能一次性修改这些文件名。

连接分为硬链接和软连接:
1 软链接文件
  软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。
  用ln -s 命令可以生成一个软连接,如下:
  [root@linux236 test]# ln -s source_file softlink_file
  在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。
  2 硬链接文件
  info ln 命令告诉您,硬链接是已存在文件的另一个名字(A "hard link" is another name for an existing file),这多少有些令人困惑。硬连接的命令是
  ln -d existfile newfile
  硬链接文件有两个限制
  1)、不允许给目录创建硬链接;
  2)、只有在同一文件系统中的文件之间才能创建链接。
  对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。
这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。

两者之间的区别
硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。
在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要
文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个
连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

个人体会
软链接是另一个文件,作用可以理解为一个指针,作用在这个文件上的操作除了删除都直接转向实际指向文件,由于是一个真实的文件所以占用磁盘空间
硬链接可以认为不是一个文件,它只是实际文件的一个别名,它的作用是防止真实文件被误操作,给一个文件建立硬链接后,他们互为别名,删除其中任意一个,
只会删除该别名,实际文件并不会被删除。由于只是别名没有任何其他信息,所以并不占用原始文件大小的磁盘空间。

LN(1) LN(1)

NAME
ln -在文件之间建立连接

总览
ln [options] source [dest]
ln [options] source...directory

POSIX 选项:
[-f]

GNU 选项(缩写):
[-bdfinsvF] [-S backup-suffix] [-V {numbered, existing, simple}]
[--help] [--version] [--]

描述
在Unix世界里有两个’link’(连接)概念,一般称之为硬连接和软连接。 一个硬
连接仅仅是一个文件名。(一个文件可以有好几个文件名,只有将 最后一个文件
名从磁盘上删除,才能把这个文件删掉。文件名的个数是由 ls(1)来确定的。 所
有的文件名都处于同一个状态,也就没有什么源名字 之说。通常文件系统里的一
个文件的所有名字包含着一样的数据信息,不 过这样也不是必需的。)一个软连
接(或符号连接)是完全不同的:它是 一个包含了路径信息的小小的指定文件。
因此,软连接可以指向不同文件 系统里的文件(比如由NFS装载的不同机器文 件
系统上的文件),甚至可以 指向一个不一定确实存在的文件。在软连接文件被访
问(系统调用open(2) 或stat(2))的时候,操作系统用该文件所包含的路径替换
该文件的访问介 入点,从而实现对所指文件的访问。(用命令rm(1)和unlink(2)
可以删除 连接,但不是删除该文件所指向的文件。 系 统 指 定 调 用lstat(2)
和readlink(2) 来读取连接文件与其所指文件的状态。到底是对软连接文件操作
,还是对被 指向文件操作,由于不同操作系统件存在不同的系统调用,而存在着
差异。)

ln 在文件间产生连接。缺省时,产生硬连接,有-s选项,则产生符号(软)连接


如果仅仅只给出一个文件名,那么ln将在当前目录里产生这个文件的连接,也 就
是说,以该文件(的最后一个)名称等同的名字在当前目录里产生一个连接(GNU
范围内);如果最后一个参数是一个已存在的目录名, ln 将在那个目录里给 每
一 个 源 文 件 用 以 与 源 文 件 相 同 的文件名产生连接,(不同情况见以
下--no-dereference的描述);如果只给出两个文件名,ln将产生源文件的连 接
;如果最后一个参数不是一个目录名或多于两个文件名,则报错。

缺 省时,ln不删除已存在的文件或符号连接。(因此,它可以被用来锁定目标文
件,即当dest已经不存在时)但选项-f可以强制执行。

在已存在的实现中,只有超级用户才能建立目录的硬连接。 POSIX 禁止系 统 调
用link(2)和ln建立目录的硬连接(但是允许在不同的文件系统间建立硬连接)。

POSIX 选项
-f 删除已存在的目的文件。

GNU 选项
-d, -F, --directory
允许超级用户建立目录硬连接。

-f, --force
删除已存在的目的文件。

-i, --interactive
提示是否删除已存在的目的文件。

-n, --no-dereference
当所给出的目的文件名是一个目录的符号连接时,将其视为一般文件处理


当目的目录名是一个确实存在的目录(不是一个符号连接)时,不进行模
糊处理,而在那个目录里建立连接。但是当所指定的目的目录名是一个符
号连接时,有两种方式来对待用户的要求。 ln 会视目的为一个普通目录
,并且在里面建立连接。或者如同符号连接本身一样地视其为一个非目录
。 这种情况下,ln 将在建立新连接之前删除或备份这个符号连接。缺省
地,把符号连接视为普通目录来对待。

-s, --symbolic
建立符号连接以替代硬连接。在不支持符号连接的系统上,这个选项仅仅
会产生一个错误提示而已。

-v, --verbose
在建立连接前显示所操作的文件名。

GNU 备份选项
对 于 想备份那些有可能被覆盖、改写或者被破坏的文件, GNU提供了比如:cp,
mv, ln, install和patch等命令。可以使用-b参数生成备份文件。备份文件的 名
称 由-V 参 数指定。假如备份文件的名称是通过原文件名加后缀而得到,那么要
用-S参数来指定这个后缀。

-b, --backup
备份文件。

-S SUFFIX,-suffix=SUFFIX
在备份文件后添加"SUFFIX"(你的后缀)。如果不使用该参数,则使用环境
变 量 SIM_PLE_BACHUP_SUFFIX,如果该环境变量没有设置,则缺省地使
用’~’。

-V METHOD,-version-control=METHOD
指定备份文件如何命名。参数"METHOD"可以是’numbered’(或’t’),如 果
不 使用该参数,则使用环境变量VERSION_CONTROL,如果该环境变量没有
设置,则缺省地使用

正确有效的METHOD参数对应于Emacs变量’version-control’。(唯一被 承
认的缩写):

t, numbered 产生数字标记形式的备份文件。

nil, existiong 对已有数字标记备份的文件进行数字备份,而简单备份
其他类型文件。

never, simple 总是进行简单备份。

GNU 标准参数
-help 在标准输出上显示使用信息并顺利退出。

-version
在标准输出上显示版本信息并顺利退出

-- 终端参数列表。

环境变量
变量LANG, LC_ALL, LC_COLLATE, LC_CTYPE和LC_MESSAGES具有通常意义。 在GNU
版本里,变量 SIMPLE_BACKUP_SUFFIX和VERSION_CONTROL控制备份文件的命名。

遵循
POSIX 1003.2,尽管POSIX 1003.2(1996)没有讨论软连接。软连接在BSD中有介绍
,在System V release3(或更老版本)系统中不出现。

另见
ls(1), rm(1), link(2), lstat(2), open(2), readlink(2), stat(2),
unlink(2)

注意
本文出自应用文档-4.0,其他版本肯定会有微小差别。任何添加或纠错意见请寄
:aeb@cwi.nl。程序Bugs请告知:fileutils-bugs@gnu.ai.mit.edu

[中文版维护人]
Surran <email>

[中文版最新更新]
2000/10/19

[中国Linux论坛man手册页翻译计划]
http://cmpp.linuxforum.net

GNU fileutils 4.0 November 1998 LN(1)

ln 可以制作软连接(指向文件名)和硬连接(指向文件节点)

cp 也可以用参数让他制作连接而不是复制文件内容。


Linux中的内置命令和外部命令区别和作用是什么
Linux可以使多个程序同时并独立地运行。良好的界面 Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

Linux是干什么用的?
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。严格来讲,Linux这个词本身...

Linux的.out是什么文件
Linux的.out是由gcc编译生成的二进制格式文件,但有可能是执行程序也可能是链接库文件,因为在linux中扩展名除了一些特殊的约定,一般情况下是无意义的。在使用gcc编程时,没有指定输入可执行文件名,默认生成可执行文件a.out文件。执行时必须键入命令 .\/a.out,即要带上扩展名,如果键入.\/a 则不正确...

linux系统的进程间通信有哪几种方式
消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。4、共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC...

linux下多个.o文件如何链接生成可执行程序
方法和详细的操作步骤如下:1、第一步,找到需要打开的.o后缀文件,见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,打开编译器,并在此处使用c-free5,选择新文件,并将其保存为cpp格式,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,单击“运行”,发现在文件末尾出现了...

linux限制内存使用大小linux限制内存
linux系统分配1g运存是不是太小了?不是。一般Linux系统对内存要求非常低的,比如阿里云ECS最小配置是1核心1GB内存20GB硬盘1Mbps带宽的简约型t1系列。里面可以安装一般的nginx+mysql+php的WEB网站。当然内存越大,应用使用起来会更加流畅。linux操作系统中管理内存的最小单位是?数据库系统中,最小的存取...

linux的cd .. 和cd \/ 命令分别是什么意思?
假如当前目录在\/home\/guo下面,那么前面的\/home\/sgl的相对路径就是..\/sgl,即当前目录的上级目录下的sgl目录。特殊符号包括~、-、..等。~表示用户主目录,即HOME变量指定的目录,如root用户的主目录为\/root。-表示前一个工作目录。..表示上级目录。.表示当前目录。

linux操作系统如何使用?
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。Linux操作系统 Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式...

linux一次运行多个shell脚本
inux 下shell脚本执行多个命令的方法 1.每个命令之间用;隔开 说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。2.每个命令之间用&&隔开 说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功...

如何控制Linux下多个Shell脚本串行执行
当你在一个类似批处理的脚本里启动多个shell脚本的时候,可能没有意识到shell背后的调度器会将这些脚本在多个CPU上并行执行。当同时执行的脚本访问某些共享资源(通常是文件)时,可能造成执行的结果错误,而且经常让你意识不到。不同于低级语言中提供同步等机制,shell提供的逻辑执行的机制可以用于串行化执行...

宣州区13060683865: linux下如何给多个文件同时改名啊? -
苦毓蒲公: 1. 使用硬链接 先看概念:通过索引节点来进行的连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(InodeIndex).在Linux中,多个文件名指向同一索引节点是存在的.一般这种连接就是硬连接. 由于指向同一个节点,所以改变一个,其他的也会随之改变. 不过你得先建立硬链接.如下是对文件 oldfile 创建硬链接: link oldfile newfileln oldfile newfile2. 使用脚本来进行批处理 在一个脚本里面添加多条 rm 或 remove 命令,然后运行这个脚本,以后就能一次性修改这些文件名.

宣州区13060683865: 在linux中,多个文件可以指向一个编号,这句话这可逆向,同一个编号可以对应多个文件吗? -
苦毓蒲公: 汗,怎么理解都是一样,你所指的编号是权限的编号吧,就是000或者500这要的,000是超级用户的代号,500,501...这些是一个组或者一个用户的代号,你的文件我不理解是什么,一个用户组编号里面可以有多个用户

宣州区13060683865: linux中什么命令可以判断硬链接和软链接 -
苦毓蒲公: 硬链接就是同一个文件使用了多个别名(他们有共同的 inode). 硬链接可由命令 link 或 ln 创建,如: link oldfile newfile ln oldfile newfile由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 ...

宣州区13060683865: linux下如何使一个文件名指向一个inode -
苦毓蒲公: 一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名.但是,Unix/Linux系统允许,多个文件名指向同一个inode号码.这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件...

宣州区13060683865: linux 软连接 和 硬连接 有什么用 -
苦毓蒲公: 【硬连接】 硬连接指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index).在Linux中,多个文件名指向同一索引节点是存在的.一般这种连...

宣州区13060683865: Linux软连接和硬链接什么情况下使用比较多 -
苦毓蒲公: 在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link). ①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接. ②硬链接文件与源文件的inode节点号相同,而...

宣州区13060683865: linux下面的链接是什么?有什么用? -
苦毓蒲公: 链接的好处:链接操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名.而且,即使我们删除这个链接,也不会破坏原来的目录. 你看看应不应该给自己的文件创建链接,如果不嫌麻烦的话可以不建的,但貌似建链接的也很少.

宣州区13060683865: linux/unix中soft link和hard link的区别是什么 -
苦毓蒲公: 1、hard link 由于linux系统中的文件系统是通过访问inode去查询数据资料的,所以硬链接就是指不同的两个文件名都指向一个inode,两个不会互相影响,删除一个还有另一个存在.链接数会变多.2、symbolic link 符号连接就不一样了,比如文件A指向inode号123456,而文件B中的内容只是文件A的路径,所以不管打开A还是B最后都是访问A,有点像windows下的快捷方式,如果A被删除了,B就无法正常使用了.链接数不变.总结:硬链接不能跨文件系统,不能连接目录.因为如果硬链接目录的话,那此目录下所有的文件都要建立硬链接,以后创建新文件时又要创建新硬链接,对于计算机来说太复杂.

宣州区13060683865: 在Linux下同时为多个文件创建软连接 -
苦毓蒲公: 制作软连接需要ln命令,命令格式为 ln -s targetfile linkfile 比如,如下命令 ln -s /www/abc.sh doabc 上面的命令会在当前目录下生成一个doabc文件,这个文件是软连接,使用ll查看当前目录下的文件时,这个文件会显示成 doabc->/www/abc.sh *的形式.

宣州区13060683865: linux 同样命名的两个头文件为什么可以放在同一个文件夹下? -
苦毓蒲公: 两个办法,一种是把三个单独的程序写到一个shell文件里面在operating system level运行.一种是把程序编译之后,link到一个文件中.在linux系统中,你可以把三个文件单独编译,生成三个object文件,然后在link到一起,生成一个文件.这种办...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网