删除软链接的坑

· 368字 · 1分钟

删除软链接时,通常使用 rm 命令就可以删除,但是如果要删除的软链接是一个目录时,要小心参数最后不要添加 / 号,否则会删除源文件。

比如:

total 152
drwx------  4 root root  4096 6月  21 00:03 .
drwxr-xr-x 21 root root  4096 6月  20 23:23 ..
-rw-------  1 root root  1016 6月  20 23:57 .bash_history
-rw-r--r--  1 root root  3106 12月  5  2019 .bashrc
drwx------  2 root root  4096 4月  23 15:38 .cache
lrwxrwxrwx  1 root root    22 6月  20 23:56 .oh-my-zsh -> /home/oygza/.oh-my-zsh
-rw-r--r--  1 root root   161 12月  5  2019 .profile
drwxr-xr-x  2 root root  4096 6月  20 22:43 .vim
-rw-------  1 root root 12911 6月  20 23:53 .viminfo
-rw-r--r--  1 root root 49311 6月  20 23:57 .zcompdump
-rw-r--r--  1 root root 50715 6月  20 23:57 .zcompdump-oygza-dev-5.8
-rw-------  1 root root   650 6月  21 00:03 .zsh_history

我想删除 .oh-my-zsh 这个文件夹的软链接,正确的命令应该是:rm .oh-my-zsh , 而不是 rm .oh-my-zsh/,否则会将源文件 /home/oygza/.oh-my-zsh 一并删除掉, 因为有时候你所使用的shell会自动帮你添加最后的/号,所以要注意一下。同时因为要删除的是目录,系统通常会提醒你要删除的是个目录,那么就是疑问所在,你明明删除的是软链接文件,却提示要加上 -rf 参数,则证明你将要删除的是源目录而不是当前的软链接。