linux 创建软连接文件夹

啊 Linux 这玩意儿... 创建软连接啊... 就是那个 ln -s...
我记得... 以前在 2 02 2 年吧... 在上海... 用这个命令... 忘了干嘛了...
ln -s [源路径] [目标路径]... 对吧... 这就是核心...
比如... 想给个文件做个链接... 比如说 /home/user/data/report.txt... 搞个软链接到 /home/user/桌面/report_link...
那就是... ln -s /home/user/data/report.txt /home/user/桌面/report_link... 嗯...
目录也是一样... 比如说 /var/www/... 想链接到 /home/user/project/web...
那就是 ln -s /var/www/ /home/user/project/web...
你看... 这就是... 源在那儿... 目标在那儿...
但是... 你得注意... 路径... 对不对... 不能写错...
比如... 你在 /home/user... 想链接 data/report.txt 到 report_link... 那就是 ln -s data/report.txt report_link... 就在当前目录...
但是... 如果 data/report.txt 在 /home/user/old_data... 那就得用绝对路径了... 或者 ln -s ../old_data/report.txt report_link... 这样...
而且... 你得有权限... 比如说... 源文件得能读... 目标地方得能写... 这就是权限...
我记得... 有时候... 目标地方有个一样的链接... 你想强制... 就加个 -f... 比如 ln -sf /new/file /old/link... 强制覆盖...
创建好了... 怎么看... 用 ls -l... 会看到那个 ->... 指向源路径...
如果源没了... 那这个链接就废了... 成死链接了... 用 ls -l... 那个链接名后面会显示 ->... 然后就是 not found 或者啥的...
删除... 就是 rm link_name... 就把那个链接删了... 源还在...
不能直接删源... 源删了... 那链接就成死链接了... 很麻烦...
对... 就这些... 嗯...

linux如何查看命令的软连接

哈,Linux软连接这事儿确实挺基础但又容易踩坑的。
上次有个同事问我怎么找vim到底指向哪个文件,我直接用ls -l $(which vim)就搞定了,他居然还问我为啥不用grep... 我当时就想,你这操作也太绕了。

具体操作啊,其实就几招:
1 . 你知道路径的时候:直接ls -l /path/to/command就行。
比如ls -l /usr/bin/python3 ,看到输出像lrwxrwxrwx 1 root root 2 1 Jan 1 0 1 0:00 /usr/bin/python3 -> /usr/local/bin/python3 ,那个l就是软连接,->后面才是真路径。
要是发现/usr/local/bin/python3 没了,那多半是环境配置出问题了。

2 . 你只知道命令名,不知道路径:先which python3 定位,然后ls -l $(which python3 )。
那个括号$()是关键,确保which先跑完,把结果传给ls -l。
这招特别适合手残党,防止手动输入路径写错字母。

3 . 想搜全系统所有叫这个名字的软连接:这个最耗时间,find / -type l -lname 'command_name' 2 >/dev/null。
注意那个-type l是找软连接,-lname是精确匹配文件名(带引号很重要!),2 >/dev/null是忽略权限问题,不然输出会刷屏。
我之前在老家服务器上试过找nginx,结果卡了快五分钟,最后发现是硬盘有点慢。
所以建议最好缩小范围,比如find /usr -type l -lname 'nginx'。

4 . 软连接和硬连接怎么区分:软连接输出里肯定有l和->,比如lrwxrwxrwx。
硬连接看起来跟普通文件一样-rwxr-xr-x,得用ls -i看inode号,一样的就是硬连接。
我之前装软件时误删了某个硬连接,导致其他依赖也出问题,真是头疼。

5 . 实际用场景:
快速排错:比如程序报错说command not found,你就ls -l $(which command)确认下软连接指向对不对。

版本管理:有时候老版本软件的软连接还在,用find / -type l -lname 'gcc-4 .8 '能搜到,避免新装软件覆盖旧配置。

系统维护:定期看看python、java这种关键命令的软连接,确保指向没变。
我有个朋友上次更新系统,结果ls -l $(which java)发现指向突然变到旧版本了,整批测试都卡住。

反正你记着:知道路径直接ls -l,不知道路径which+ls -l,要全搜就find(但别在服务器上全盘搜)。
命令参数和顺序搞对,软连接问题基本就搞定了。

Linux 系统中如何删除软连接

哎哟,讲真,我以前在Linux系统里头搞符号链接的时候,那可真是踩了不少坑。
记得有一次,我在一个叫做“我的服务器”的机器上,创建了几个软链接,结果后来想清理一下环境,就把链接给删了。
我当时用的是rm命令,就那么简单,rm mylink,然后回车,链接就没了。
不过,这里有个小细节,就是记得链接后面不要加斜杠,否则会删掉链接指向的目录本身,那时候我就傻眼了。

还有一次,我在公司的一个大项目里头,得处理成百上千的软链接,那时候真是手忙脚乱。
我本来想用rm一次性删掉所有链接,结果发现直接写rm link是不行的,因为这样会把所有以“link”结尾的东西都删掉,包括一些不应该删的文件。
后来我学聪明了,一个个写链接的路径,或者先列出所有链接再一个个删除。

说到unlink,这块我就没怎么碰过,不敢乱讲。
不过我知道它比rm更直接,因为它不仅能删除链接,还能直接删除文件。
不过,这玩意儿用起来得小心,万一不小心,直接把文件给删了。

还有一点,就是删除指向目录的软链接,别用-f选项强制删除,否则可能会把目录内容也给删了。
我记得有一次,我就因为这样误删了一个重要的目录,那时候整个团队都炸锅了。

至于硬链接,那玩意儿和普通文件没什么区别,删除方式也差不多。
不过,通常我们不会同时删除硬链接和原始文件,除非你通过软链接找到了原始文件,然后手动删除。

最后,就是关于断开链接那事儿。
有时候源文件被删了,软链接还在,这时候链接就变成了断开的。
虽然可以用unlink来删除这样的链接,但我个人觉得还是用rm更直观,也更安全。
哎,说起来都是泪啊,这Linux系统里的文件操作,真是得一步步来,小心谨慎。

linux软链接(符号链接)

软链接创建:ln -s /usr/bin/mysql /var/test 软链接删除:rm /var/test 软链接修改:ln -sf /new/path /var/test 这就是坑:别用ln -sf覆盖重要文件,先备份。