一天一个shell命令 linux文件操作系列-ln命令详解
里提示一下:ubuntu的翻译很多都是字面直译,存在很多问题,所以建议大家参照我这里的解释。当然本来也是有些赶文的嫌疑,望指正。
经常在linux上操作,有在不同的目录下切换某几个固定的命令,或者修改几个固定的文件,这时候,如果能在一个目录下就操作他们,会是一件多么轻松的事情。我们来看看链接命令ln
全称
ln全称是link顾名思义,这是一个建立一个链接。怎么去理解呢?它的功能类似于MacOS的别名或者Windows的快捷方式,删除不会影响文件本身。
说明:(直接看看斜体,就行了)
链接可分为两种:硬链接(hardlink)与软链接(symboliclink),
不论是那种类型的链接,都提供了一种双向引用的手段--也就是说,不管你用文件的那个名字对文件内容进行修改,你修改的效果都即会反映到原始名字的文件,也会反映到链接名字的文件.当你工作在更高层次的时候,才会发生软硬链接的不同.硬链
接的优点是,原始文件与链接文件之间是相互独立的--如果你删除或者重命名老文件,那么这种操作将不会影响硬链接的文件,硬链接的文件讲还是原来文件的内容.
然而如果你使用软链接的,当你把老文件删除或重命名后,软链接将再也找不到原来文件的内容了.而软链接的优点是它可以跨越文件系统(因为它只不过是文件名的一个引用,而并不是真正的数据).与硬链接的另一个不同是,一个符号链接可以指向一个
目录.
例子:
1.$lnfile.txt file.copy
file.copy就是file.txt的一个快捷方式
查看—help
用法:ln[选项]...[-T]目标链接名(第一种格式) 或:ln[选项]...目标(第二种格式) 或:ln[选项]...目标...目录(第三种格式) 或:ln[选项]...-t目录目标...(第四种格式) 在第一种格式中,创建指定名称且指向指定目标链接。 在第二种格式中,在当前目录创建指向目标位置的链接。 在第三、四种格式中,在指定目录中创建指向指定目标的链接。 默认创建硬链接,当使用--symbolic时创建符号链接。 当创建硬链接时每个指定的目标都必须存在。符号链接可以指向任意的位置, 当链接解析正常时,将其解析为一个与其父目录关联的链接。 长选项必须使用的参数对于短选项时也是必需使用的。 --backup[=CONTROL] 为每个已存在的目标文件创建备份文件 -b类似--backup, 但不接受任何参数 -d,-F, --directory 创建指向目录的硬链接(只适用于超级用户) -f,--force 强行覆盖任何已存在的链接文件 -i,--interactive 覆盖链接文件前进行确认 -L,--logical 将硬链接创建为符号链接引用 -n,--no-dereference 如果目的地是一个链接至某目录的符号链接,会将 该符号链接当作普通文件处理,先将该已存在的链 接备份或覆盖 -s,--symbolic 创建符号链接(软链接)而非硬链接 -S,--suffix=后缀 自行指定链接文件的后缀 -t,--target-directory=目录 在指定目录中创建链接 -T,--no-target-directory 将链接名称当作普通文件 -v,--verbose 链接前打印相关信息 --help显示此帮助信息并退出 --version显示版本信息并退出 备份文件的后缀为"~",除非以--suffix选项或是SIMPLE_BACKUP_SUFFIX 环境变量指定。版本控制的方式可通过--backup选项或VERSION_CONTROL环境 变量来选择。以下是可用的变量值: 使用-s选项会忽略-L和-P。 否则当源为一个符号链接(默认-P)时,会由最后指定的一个选项来控制行为。 none,off不进行备份(即使使用了--backup选项) numbered,t备份文件加上数字进行排序 existing,nil若有数字的备份文件已经存在则使用数字,否则使用普通方式备份 simple,never永远使用普通方式备份
解读:
1.-s
创建软链接ln-sfile.txt/${dir}/file.copy
2.-f-b
-f实际上为强行覆盖已存在的硬链接(注意:有的ubuntu的翻译有误)
-b指覆盖前备份
3.–i
覆盖文件前提问
4.–S
与-s存在着本质区别。。这里是给他起后缀名(window里可能叫扩展名,但linux中不是以这种方式区别文件)
实战:
1.现在我需要配置jdk,tomcat,并且有多个节点,还有一些配置文件在不同的目录下。有时候,会用到一些远程的工具集。工作时间有点长,慢慢发现很多时间在切换目录上,于是,我把所有的快捷方式,全部集中的几个文件夹,并且进行归类,然后某些简单操作用远程或者共享,在win下操作.
2.建立软链接
$ln–sfile.txt/${dir}/
3.可以通过后缀名提示该文件是软连接
$ln–sfile.txt/${dir}/file-v-S.url
-v提示文件变化,-S.url表示了file的后缀名-s表示是软连接
4.如果你总是遇到很多类似名称,覆盖前需要提示
$ln-f覆盖前不提示
$ln-i覆盖前提示
中文介绍
用法:ln[选项]...[-T]目标链接名 (第一种格式) 或:ln[选项]...目标 (第二种格式) 或:ln[选项]...目标...目录 (第三种格式) 或:ln[选项]...-t目录目标... (第四种格式) 在第一种格式中,创建指定名称且指向指定目标链接。 在第二种格式中,在当前目录创建指向目标位置的链接。 在第三、四种格式中,在指定目录中创建指向指定目标的链接。 默认创建硬链接,当使用--symbolic时创建符号链接。 当创建硬链接时每个指定的目标都必须存在。符号链接可以指向任意的位置, 当链接解析正常时,将其解析为一个与其父目录关联的链接。 长选项必须使用的参数对于短选项时也是必需使用的。 --backup[=CONTROL] 为每个已存在的目标文件创建备份文件 -b 类似--backup,但不接受任何参数 -d,-F,--directory 创建指向目录的硬链接(只适用于超级用户) -f,--force 强行删除任何已存在的目标文件 -i,--interactive 删除文件前进行确认 -L,--logical 将硬链接创建为符号链接引用 -n,--no-dereference 如果目的地是一个链接至某目录的符号链接,会将 该符号链接当作普通文件处理,先将该已存在的链 接备份或删除 -s,--symbolic 创建符号链接而非硬链接 -S,--suffix=后缀 自行指定备份文件的后缀 -t,--target-directory=目录 在指定目录中创建链接 -T,--no-target-directory 将链接名称当作普通文件 -v,--verbose 链接前先列出每个文件的名称 --help 显示此帮助信息并退出 --version 显示版本信息并退出 备份文件的后缀为"~",除非以--suffix选项或是SIMPLE_BACKUP_SUFFIX 环境变量指定。版本控制的方式可通过--backup选项或VERSION_CONTROL环境 变量来选择。以下是可用的变量值: 使用-s选项会忽略-L和-P。 否则当源为一个符号链接(默认-P)时,会由最后指定的一个选项来控制行为。 none,off不进行备份(即使使用了--backup选项) numbered,t备份文件加上数字进行排序 existing,nil若有数字的备份文件已经存在则使用数字,否则使用普通方式备份 simple,never永远使用普通方式备份