一天一个shell命令 linux文件操作系列-ln命令详解

 更新时间:2016年06月05日 16:09:15   投稿:mdxy-dxy  
这篇文章主要介绍了一天一个shell命令 linux文件操作系列-ln命令详解 ,需要的朋友可以参考下

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

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

全称

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

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

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

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

例子:

1.$ln file.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 -s file.txt /${dir}/file.copy

2. -f -b

-f 实际上为强行覆盖已存在的硬链接(注意:有的ubuntu的翻译有误)

-b 指覆盖前备份

3. –i

覆盖文件前提问

4. –S

与-s存在着本质区别。。这里是给他起后缀名(window里可能叫扩展名,但linux中不是以这种方式区别文件)
 

实战:

1. 现在我需要配置jdk,tomcat,并且有多个节点,还有一些配置文件在不同的目录下。有时候,会用到一些远程的工具集。 工作时间有点长,慢慢发现很多时间在切换目录上,于是,我把所有的快捷方式,全部集中的几个文件夹,并且进行归类,然后某些简单操作用远程或者共享,在win下操作.

2. 建立软链接

$ln –s file.txt /${dir}/

3. 可以通过后缀名提示该文件是软连接

$ln –s file.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  永远使用普通方式备份

您可能感兴趣的文章:

相关文章

  • Shell脚本批量清除Nginx缓存

    Shell脚本批量清除Nginx缓存

    这篇文章主要介绍了Shell脚本批量清除Nginx缓存,本文直接给出实现代码和执行效果图,需要的朋友可以参考下
    2014-12-12
  • Linux 中纠正拼写错误的Bash 命令方法

    Linux 中纠正拼写错误的Bash 命令方法

    这篇文章主要介绍了Linux 中纠正拼写错误Bash 命令的方法,需要的朋友可以参考下
    2018-03-03
  • Linux下使用expect命令编写自动化交互脚本

    Linux下使用expect命令编写自动化交互脚本

    今天小编就为大家分享一篇关于Linux下使用expect命令编写自动化交互脚本,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-11-11
  • Linux下使用Shell脚本实现ftp的自动上传下载的代码小结

    Linux下使用Shell脚本实现ftp的自动上传下载的代码小结

    如何实现在ftp自动上传下载文件脚本呢?想必还有很多朋友都不太了解吧,下面是ftp自动上传下载文件脚本方法,希望对朋友们有些帮助
    2013-02-02
  • Shell循环语句的使用(for循环、while循环、until循环)

    Shell循环语句的使用(for循环、while循环、until循环)

    本文主要介绍了Shell循环语句的使用(for循环、while循环、until循环),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Shell脚本配合iptables屏蔽来自某个国家的IP访问

    Shell脚本配合iptables屏蔽来自某个国家的IP访问

    这篇文章主要介绍了Shell脚本配合iptables屏蔽来自某个国家的IP访问,本文利用IPdeny的IP数据,然后用Shell脚本导入iptables实现屏蔽IP访问,需要的朋友可以参考下
    2015-04-04
  • 关于使用shell脚本循环处理文本的问题

    关于使用shell脚本循环处理文本的问题

    今天给大家普及关于使用shell脚本循环处理文本的问题,其实操作步骤很简单,本文通过脚本实例给大家讲解,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • Shell脚本判断Apache进程是否存在

    Shell脚本判断Apache进程是否存在

    这篇文章主要介绍了Shell脚本判断Apache进程是否存在,若不存在则显示不存在,若存在则显示进程个数,当不等于10个时用红色字体通知管理员,需要的朋友可以参考下
    2014-12-12
  • shell编程中for循环语句的实现过程及案例

    shell编程中for循环语句的实现过程及案例

    Bash Shell中主要提供了三种循环方式:for、while和until,下面这篇文章主要给大家介绍了关于shell编程中for循环语句的实现过程及案例,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • SHELL字符串提取的两种方法实现

    SHELL字符串提取的两种方法实现

    本文主要介绍了SHELL字符串提取的两种方法实现,主要包括:从指定位置开始截取和从指定字符(子字符串)开始截取,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10

最新评论