如何安全的删除软连接?

2020-06-22 11:35:05 +08:00
 k8ser

如何安全的删除软连接? 一不小心就加了个 /

7122 次点击
所在节点    Linux
30 条回复
aloxaf
2020-06-22 19:06:24 +08:00
1. 不要没事乱加 rf,你要删的又不是目录
2. 标准做法是使用 unlink
3. 为了防止误删建议 alias rm=rm -i
4. 为了误删之后还能恢复请使用 trash-cli (这个太长我一般 alias 到 del )
5. 如果你是像前面说的因为 tab 补全会加上 / 而误操作的花,建议使用 zsh 。zsh 很多细节真的处理得非常好:补全目录时自动添加的 / ,在侦测到你接下来输入的也是 / 或者分号、空格、回车时,就会被自动删掉。
qnnnnez
2020-06-22 19:46:14 +08:00
3 楼说得没错呀。
unlink 和 rm 没啥区别吧(我还不知道有个程序叫 unlink ),因为 unlink 不能加 -r ?
HarryQu
2020-06-22 22:54:26 +08:00
既然想安全,就尽量少用 rm 。你可以建一个临时目录,将想要删除的文件,使用 mv 移动到临时目录,定时清理临时目录即可。
Illusionary
2020-06-22 23:14:29 +08:00
rm -f,从未失手
msg7086
2020-06-23 07:38:45 +08:00
软连接相当于文件,不需要加斜线啊。

@Netfix 换个好点的 shell,不会乱加斜线的那种。

@flyingghost 写上解释比光发一个命令更利于新手避开错误。
Coolwinds
2020-06-23 13:29:01 +08:00
一楼真没意思,谁没有还是个菜鸟的时候
MayKiller
2020-06-23 14:51:41 +08:00
`fd <location> -type l`
检查一下当前存在的软链再操作就好....
qbqbqbqb
2020-06-24 11:53:10 +08:00
@qnnnnez Linux 里 rm 和 unlink 确实没多大区别
有区别的是 macOS,因为 macOS 的文件系统支持目录硬链接(注意不是软链接,且系统中有相关机制确保目录“树”无环),众所周知 rm 和 rmdir 是无法直接删除有文件的目录的,如果要消除一个目录硬链接而不影响其中文件的话必须用 unlink 。
至于软连接,无论在什么平台上都是直接 rm (不加-r )就行
MCVector
2020-06-24 13:16:27 +08:00
@flyingghost 那就看有多少人是先接触段子了🤔
TK4E
2020-06-24 22:38:05 +08:00
以防万一

alias rm='mv -t /root/.Rubbish'
alias rmrf='\rm -rf /root/.Rubbish/*'

现在 rm -rf / 也不能直接删除吧 反倒是要小心 rm -rf *

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683690

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX