一、简介
链接文件分类:硬链接、软链接(符号链接)。
硬链接
a)不能对目录进行硬链接。
b)不能跨分区进行硬链接。
c)指向同一个inode的多个不同路径,创建文件的硬链接即为inode创建新的引用路径,因此会增加其引用计数。
软链接(符号链接)
a)可以对目录进行软链接。
b)可以跨分区进行软链接。
c)可以对一个不存在的文件名进行软链接
d)指向的是另一个文件的路径,类似于windows下的快捷键,其大小为指向的路径的字符串的长度,不增加或减少目标文件inode的引用计数。
脚本的交互型与非交互型
交互型脚本
脚本执行过程中会有与用户进行交互的过程,需要用户进行部分内容的输入或确定,通过用户的操作来执行满足条件的脚本的后续内容,通常结果表现为“灵活性”“可选择”。
非交互型脚本
脚本执行过程中不会出现于用户的交互过程,整个脚本执行完成即是其脚本的结果,通常结果表现为“唯一性”。
二、使用
1.ln命令
在文件之间建立连接,创建链接文件。
格式
~]# ln [options] source [dest]
-n source [dest]: 在进行软连结时,将 dest 视为一般的目录
-s source [dest]:建立软链接(符号链接)
-v source [dest]:显示详细的处理过程
# 建立硬链接
~]# ln source [dest]
案例
[root@wybaron_host1015 ~]# ln -sv data/ln_dir_TEST/ dir
"dir" -> "data/ln_dir_TEST/"
[root@wybaron_host1015 ~]# ll
...
lrwxrwxrwx 1 root root 17 10月 5 17:06 dir -> data/ln_dir_TEST/
...
[root@wybaron_host1015 ~]# ln -nv data/ln_file_TEST.txt file
"file" => "data/ln_file_TEST.txt"
[root@wybaron_host1015 ~]# ll
...
-rw-r--r-- 2 root root 8 10月 5 17:02 file
...
[root@wybaron_host1015 ~]# rm -rf data/ln_dir_TEST/
[root@wybaron_host1015 ~]# rm -rf data/ln_file_TEST.txt
[root@wybaron_host1015 ~]# ll
...
lrwxrwxrwx 1 root root 17 10月 5 17:18 dir -> data/ln_dir_TEST/
...
# 此时硬链接文件一同消失,而软链接文件的链接一直在,只是提示链接了一个不存在的文件
2.read命令
主要用于bash脚本编程中的用户交互。
格式
~]# read [option]... [name ...]
-p 'PROMPT':给予用户输入的提示符或字串
-t TIMEOUT:指定用户输入的等待时间,单位:秒
案例
[root@wybaron_host1015 ~]# vim scripts/read_TEST.sh
#!/bin/bash
#
#
read -p '请输入您需要打印的内容:' -t 5 a
echo "您输入的是:$a"
~
[root@wybaron_host1015 ~]# bash -n scripts/read_TEST.sh
# 正常输入
[root@wybaron_host1015 ~]# bash scripts/read_TEST.sh
请输入您需要打印的内容:kjngankjgn
您输入的是:kjngankjgn
# 输入超时
[root@wybaron_host1015 ~]# bash scripts/read_TEST.sh
请输入您需要打印的内容:您输入的是:
[root@wybaron_host1015 ~]#
三、补充
链接文件的方式进行升级和版本替换
通过替换目录文件的链接文件进行服务版本的升级,删除链接文件时千万不要用 rm -rf /$DIR/ 来删除,此时删除的并不是链接文件,而是真正的 /$DIR/ 文件夹内的文件。想要删除链接文件要用以下命令 rm /$DIR 只是少了一个“/” ,此时删除的就是链接文件, 也就是在文件的最后不要加上“/”。案例如下:
[root@wybaron_host1015 ~]# ln -sv scripts/sddg/ dir
"dir" -> "scripts/sddg/"
[root@wybaron_host1015 ~]# ll scripts/sddg/
总用量 8
-rw-r--r-- 1 root root 6 10月 6 08:38 hello.txt
-rw-r--r-- 1 root root 7 10月 6 08:38 hellow.txt
[root@wybaron_host1015 dir]# cd ..
[root@wybaron_host1015 ~]# rm -rf dir
[root@wybaron_host1015 ~]# ll scripts/sddg/
总用量 8
-rw-r--r-- 1 root root 6 10月 6 08:38 hello.txt
-rw-r--r-- 1 root root 7 10月 6 08:38 hellow.txt
[root@wybaron_host1015 ~]# !ln
ln -sv scripts/sddg/ dir
"dir" -> "scripts/sddg/"
[root@wybaron_host1015 ~]# rm -rf dir/
[root@wybaron_host1015 ~]# !ll
ll scripts/sddg/
总用量 0