如何正确的删除软连接
如何正确的删除软连接
在 linux 系统,软连接相当与在win系统下的快捷方式。但是在 linux 下不正确的删除软连接可能造成灾难。一般删除软连接使用命令 rm ,有些使用 rm -rf 习惯的人在操作这个的时候会存在很大的危险性。正确删除 软连接 最安全的方式是使用 命令unlink。
如下举个
例子
# 创建一个文件夹 两个文件 一个软连接
~ mkdir origin
~ touch origin/file1.php
~ touch origin/file2.php
~ ln -s origin/ link
# 查看文件
~ ll origin
~ ..... file1.php
~ ..... file2.php删除软连接
的操作
# 以下这样的删除都没问题
~ unlink link
~ rm link
~ rm -r link # 这里的参数 r 其实是没有意义的,因为link是一个软连接 不是目录
~ rm -rf link # 这里的 rf 同样没有意义,只是rm 命令忽略了这里的参数
~
~
# 这样删除就会造成灾难
~ rm -rf link/
# 这个时候你发现软连接并没有删除,但是 origin 目录下的文件是全部没删除了 ==!
# 这些罪魁祸首是 参数 f,如果你没有使用f参数 这一切还可以挽回
~ rm link/
rm: cannot remove `link/': Is a directory
# 这里 rm 通过你的参数 link/ 发现是要删除一个目录,这时候需要你添加参数 r
~ rm -r link/
rm: cannot remove `link': Not a directory
# 这里你添加了 r 参数,但是并不能找到目录 link/ 因为link并不是一个目录,他是一个软连接,只不过有些shell在补全的时候会将 `/` 补全上去这里mark下:
centos系统,如果使用 rm -rf 软连接/ 的时候会将软连接指定的目录下的文件递归删除,不带提示!!!
罪魁祸首有两个:
- rm 的f参数
- 软连接后面的
/
所以正确 安全 的删除软连接的方式是 unlink 软连接,这个时候如果 shell 自动补全后面的 / ,unlink 命令会提示你删除不了。
其次使用rm 删除的时候不要加参数 f ,这个时候即使你带上了后面的 / ,rm也会提醒你没有这个目录。
全文总结
本文主要介绍了 Linux 系统中软连接的删除相关内容。在 Linux 系统里,软连接类似于 Windows 系统下的快捷方式,然而不正确删除软连接可能带来严重后果。通常删除软连接会用 rm 命令,但习惯使用 rm -rf 的人操作时风险较大。文中通过创建文件夹、文件及软连接的示例,展示了不同删除软连接操作的结果。如使用 unlink link、rm link、rm -r link、rm -rf link 等方式删除软连接都可行,因 link 为软连接,后两者命令中的参数实际无意义。但 rm -rf link / 这种操作会导致灾难,软连接未删除,却删除了其指向目录下的所有文件,原因是 rm 的 f 参数及软连接后的 “/”。因此,最安全的删除软连接方式是使用 unlink 命令,若用 rm 删除则不要加 f 参数。
重要亮点
- 软连接删除不当的风险:在 Linux 系统中,软连接类似 Windows 快捷方式,但删除软连接操作不当会引发严重问题。习惯使用
rm -rf命令的人,若对软连接进行操作,可能因误操作导致严重后果,比如误删重要文件。 - 不同删除命令及参数的效果:创建好软连接后,使用
unlink link、rm link、rm -r link、rm -rf link等方式都能删除软连接,其中rm -r和rm -rf中的 r 和 rf 参数对软连接无实质作用,rm 命令会忽略这些参数。但rm -rf link /这种形式会带来灾难性后果,它会删除软连接指向目录下的所有文件。 - 安全删除软连接的方式:最安全的删除软连接方式是使用
unlink命令,即便 shell 自动补全 “/”,unlink命令也会提示无法删除。若使用 rm 命令删除,不要添加 f 参数,这样即使带上 “/”,rm 也会提示没有该目录,从而避免误删重要文件。