ln命令

Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 在Linux系统中存在两种链接文件方式:

软连接硬链接

如果文件被删除,则软链接文件失去指向,变为不可用 如果文件被删除,由于硬链接文件直接指向内容,因此不受影响

创建硬链接

ln [源文件/目录] [目标软链接]

创建软连接

ln -s [源文件/目录] [目标软链接]

[root@asd test]# mkdir data-directory-test1

[root@asd test]# touch data-file-test2

[root@asd test]# ln -s data-directory-test1/ test1

[root@asd test]# ln -s data-file-test2 test2

[root@node02 test]# ll

total 4

drwxr-xr-x 2 root root 4096 Nov 10 16:24 data-directory-test1

-rw-r--r-- 1 root root 0 Nov 10 16:26 data-file-test2

lrwxrwxrwx 1 root root 21 Nov 10 16:27 test1 -> data-directory-test1/

lrwxrwxrwx 1 root root 15 Nov 10 16:28 test2 -> data-file-test2

删除软连接

删除软链接和删除文件/目录操作一样,使用rm命令。但是需要特别注意的是,如果只是删除软链接,不想误删除软链接目录真实文件数据,在rm目录时路径末尾一定不能带"/“。如果带了”/",会将链接到的路径下的文件全部删除。

[root@node02 test]# ll

total 4

drwxr-xr-x 2 root root 4096 Nov 10 16:46 data-directory-test1

lrwxrwxrwx 1 root root 20 Nov 10 16:46 test1-1 -> data-directory-test1

lrwxrwxrwx 1 root root 20 Nov 10 16:46 test1-2 -> data-directory-test1

[root@node02 test]# ll data-directory-test1/

total 0

-rw-r--r-- 1 root root 0 Nov 10 16:47 file1

-rw-r--r-- 1 root root 0 Nov 10 16:47 file2

#末尾不带"/"删除,删除软链接,不删除目录下数据

[root@node02 test]# rm -rf test1-1

[root@node02 test]# ll

total 4

drwxr-xr-x 2 root root 4096 Nov 10 16:47 data-directory-test1

lrwxrwxrwx 1 root root 20 Nov 10 16:46 test1-2 -> data-directory-test1

[root@node02 test]# ll data-directory-test1/

total 0

-rw-r--r-- 1 root root 0 Nov 10 16:47 file1

-rw-r--r-- 1 root root 0 Nov 10 16:47 file2

#末尾带"/"删除,删除目录下数据,但不删除软链接

[root@node02 test]# rm -rf test1-2/

[root@node02 test]# ll

total 4

drwxr-xr-x 2 root root 4096 Nov 10 16:48 data-directory-test1

lrwxrwxrwx 1 root root 20 Nov 10 16:46 test1-2 -> data-directory-test1

[root@node02 test]# ll data-directory-test1/

total 0

修改软连接

ln -snf [新源文件/目录] [目标软链接]

[root@node02 test]# ll

total 8

drwxr-xr-x 2 root root 4096 Nov 10 16:48 data-directory-test1

drwxr-xr-x 2 root root 4096 Nov 10 16:51 data-directory-test2

lrwxrwxrwx 1 root root 20 Nov 10 16:51 test-link -> data-directory-test1

[root@node02 test]# ln -snf data-directory-test2 test-link

[root@node02 test]# ll

total 8

drwxr-xr-x 2 root root 4096 Nov 10 16:52 data-directory-test1

drwxr-xr-x 2 root root 4096 Nov 10 16:52 data-directory-test2

lrwxrwxrwx 1 root root 20 Nov 10 16:52 test-link -> data-directory-test2

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。