免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1020 | 回复: 4
打印 上一主题 下一主题

[文件目录] 软链接名字修改脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-08-25 16:08 |只看该作者 |倒序浏览
由如下软链接目录
project2 -> ./C320_PROJECT/project2

./C320_PROJECT/  可能为任意目录
我现在想修改名字为project1


project1 -> ./C320_PROJECT/project1

求脚本实现方式

论坛徽章:
2
极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之新疆
日期:2017-02-06 17:31:41
2 [报告]
发表于 2016-08-25 17:29 |只看该作者
  1. sed 's/project2/project1/g' file
复制代码

论坛徽章:
0
3 [报告]
发表于 2016-08-25 21:39 |只看该作者
本帖最后由 blind_fish 于 2016-08-25 21:41 编辑

掐头去尾,然后自己添上,
echo "project2 -> ./C320_PROJECT/project2"|sed -r 's@^[[:alnum:]]+(.*/)[^/]+@project1\1project1@'

论坛徽章:
0
4 [报告]
发表于 2016-08-26 13:29 |只看该作者
楼上的两位是文本处理。。。
我需要的是相关操做。。。。
比如 mv project1 project2
指向的软链接部分比较难处理

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
5 [报告]
发表于 2016-08-26 23:23 |只看该作者
回复 1# kaober


$ ls -l project2
lrwxrwxrwx 1 jason jason 14 Aug 26 23:20 project2 -> ./tmp/project2

$ readlink project2
./tmp/project2

$ echo project2 project1 | awk 'BEGIN{FS="[ /]";OFS="/"}function mv(org,new){system("mv "org" "new)}{f1=$1;n1=$2;$0="";cmd="readlink "f1;cmd|getline;close(cmd);if($0=="")next;f2=$0;$NF=n1;n2=$0;print f1" -> "f2;print n1" -> "n2;mv(f2,n2);system("ln -f -s "n2" "f1);mv(f1,n1)}'
project2 -> ./tmp/project2
project1 -> ./tmp/project1

$ LANG=C ls -l project1
lrwxrwxrwx 1 jason jason 14 Aug 26 23:21 project1 -> ./tmp/project1

$ readlink project1
./tmp/project1
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP