创建符号链接时我做错了什么/tmp
?
$ sudo mkdir /mnt/tmp/
$ ln -s /mnt/tmp/ /tmp/
$ ls -alh /tmp
total 12K
drwxrwxrwt 3 root root 4.0K Sep 28 05:29 .
drwxr-xr-x 23 root root 4.0K Aug 26 05:44 ..
lrwxrwxrwx 1 ubuntu ubuntu 9 Sep 28 04:53 tmp -> /mnt/tmp/
drwx------ 6 ubuntu ubuntu 4.0K Sep 28 04:54 tmpDcI8v2
答案1
一切顺利。您使用了ln
第三种语法形式:
您命令创建符号链接并将/mnt/tmp
其放置在 中/tmp
。
由于/tmp
是现有目录,系统将创建与目标同名的链接,即tmp
在该目录内。
您最终会得到一个/tmp/tmp
指向的符号链接,/mnt/tmp
这就是您在目录列表中看到的内容。
有两件事可能会让您感到困惑:
- 参数的顺序
ln
是:首先是目标,然后是链接名称 - 如果你提供一个现有目录而不是链接名称,
ln
将在该目录内创建一个链接
答案2
假设机器上没有运行任何关键程序。我们可以按照以下步骤创建符号链接
首先创建备份:sudo mkdir /tmp_bak && sudo rsync -avz /tmp/ /tmp_bak
- mkdir $largedrive$/tmp
- 光盘 /
- sudo rsync -avz /tmp/$largedrive$/tmp && sudo rm -rf /tmp/ && sudo ln -s $largedrive$/tmp
其中 $largedrive$ 是可用空间较多的文件夹路径。