前言
- 文章来源:
CSDN@LawsonAbs
1.软连接
1.1 语法
ln -s source target
解释下:
ln -s
:表示创建一个软连接;
target
:表示目标文件(夹)【即被创建的文件(夹)】
source
:表示当前已存在的文件(夹)名【故称之为源】
1.2 具体示例
- step 1.创建测试文件及文件夹
[root@server6 ~]# mkdir test_chk
[root@server6 ~]# touch test_chk/test.txt
[root@server6 ~]# echo "hello spark" > test_chk/test.txt
[root@server6 ~]# cat test_chk/test.txt
hello spark
[root@server6 ~]# ll
总用量 84
-rw-------. 1 root root 1257 6月 16 01:17 anaconda-ks.cfg
drwxr-xr-x. 25 root root 4096 11月 1 10:28 azkabanJob
-rw-r--r--. 1 root root 67322 11月 4 10:24 azkabanJob.zip
drwxr-xr-x. 4 root root 37 7月 13 11:01 hadoop_temp
-rw-r--r--. 1 root root 54 7月 4 14:11 HelloLinux.txt
drwxr-xr-x. 2 root root 22 11月 4 10:41 test_chk
-rw-r--r--. 1 root root 67 10月 8 15:52 zookeeper.out
[root@server6 ~]# ln -s test_chk/ test_chk_ln
[root@server6 ~]# ll
总用量 84
-rw-------. 1 root root 1257 6月 16 01:17 anaconda-ks.cfg
drwxr-xr-x. 25 root root 4096 11月 1 10:28 azkabanJob
-rw-r--r--. 1 root root 67322 11月 4 10:24 azkabanJob.zip
drwxr-xr-x. 4 root root 37 7月 13 11:01 hadoop_temp
-rw-r--r--. 1 root root 54 7月 4 14:11 HelloLinux.txt
drwxr-xr-x. 2 root root 22 11月 4 10:41 test_chk
lrwxrwxrwx. 1 root root 9 11月 4 10:42 test_chk_ln -> test_chk/
-rw-r--r--. 1 root root 67 10月 8 15:52 zookeeper.out
[root@server6 ~]# cd test_chk_ln/
[root@server6 test_chk_ln]# ll
总用量 4
-rw-r--r--. 1 root root 12 11月 4 10:41 test.txt
[root@server6 test_chk_ln]# cat test.txt
hello spark
[root@server6 test_chk_ln]# ll
总用量 4
-rw-r--r--. 1 root root 12 11月 4 10:41 test.txt
[root@server6 test_chk_ln]# cat test.txt
hello spark
2.注意
2.1 创建软连接时,不用目标创建文件夹(target_file
)。
2.2 命令示例解释
执行的命令是: ln -s /storage/lawson/scores scor
其含义就是:将scor指向 /storage/lawson/scores/目录
这里是当前的scor 指向 /storage/lawson/scores 中。这里显示红色,是因为/storage/lawson/scores
这个目录不存在,如果创建该目录,那就可以得到蓝色的显示了。
需要注意的是,当前所有目录下的文件都不能重名,因为我之前有一个文件夹是scores
,所以这里就简单的命名成了scor
。
2.3 软连接的删除
rm -rf ./test_chk_ln/
会删除文件夹下的所有内容,但是没有删除这个链接;
rm -rf ./test_chk_ln
则是仅删除这个软链接,不会删除下面的内容。
- 错误示范
[root@server6 test_chk_ln]# cd ..
[root@server6 ~]# ll
总用量 84
-rw-------. 1 root root 1257 6月 16 01:17 anaconda-ks.cfg
drwxr-xr-x. 25 root root 4096 11月 1 10:28 azkabanJob
-rw-r--r--. 1 root root 67322 11月 4 10:24 azkabanJob.zip
drwxr-xr-x. 4 root root 37 7月 13 11:01 hadoop_temp
-rw-r--r--. 1 root root 54 7月 4 14:11 HelloLinux.txt
drwxr-xr-x. 2 root root 22 11月 4 10:41 test_chk
lrwxrwxrwx. 1 root root 9 11月 4 10:42 test_chk_ln -> test_chk/
-rw-r--r--. 1 root root 67 10月 8 15:52 zookeeper.out
[root@server6 ~]# rm -rf ./test_chk_ln/
[root@server6 ~]# ll
总用量 84
-rw-------. 1 root root 1257 6月 16 01:17 anaconda-ks.cfg
drwxr-xr-x. 25 root root 4096 11月 1 10:28 azkabanJob
-rw-r--r--. 1 root root 67322 11月 4 10:24 azkabanJob.zip
drwxr-xr-x. 4 root root 37 7月 13 11:01 hadoop_temp
-rw-r--r--. 1 root root 54 7月 4 14:11 HelloLinux.txt
drwxr-xr-x. 2 root root 6 11月 4 10:42 test_chk
lrwxrwxrwx. 1 root root 9 11月 4 10:42 test_chk_ln -> test_chk/
-rw-r--r--. 1 root root 67 10月 8 15:52 zookeeper.out
[root@server6 ~]# cd test_chk
[root@server6 test_chk]# ll
总用量 0
[root@server6 test_chk]# ll
总用量 0
可以发现该文件夹下的内容都被删了。。。
- 正确删除软连接
[root@server6 ~]# rm -rf ./test_chk_ln
[root@server6 ~]# ll
总用量 84
-rw-------. 1 root root 1257 6月 16 01:17 anaconda-ks.cfg
drwxr-xr-x. 25 root root 4096 11月 1 10:28 azkabanJob
-rw-r--r--. 1 root root 67322 11月 4 10:24 azkabanJob.zip
drwxr-xr-x. 4 root root 37 7月 13 11:01 hadoop_temp
-rw-r--r--. 1 root root 54 7月 4 14:11 HelloLinux.txt
drwxr-xr-x. 2 root root 22 11月 4 10:44 test_chk
-rw-r--r--. 1 root root 67 10月 8 15:52 zookeeper.out
[root@server6 ~]# cd test_chk/
[root@server6 test_chk]# ll
总用量 4
-rw-r--r--. 1 root root 12 11月 4 10:44 test.txt