linux 怎么把文件重命名为父文件夹名

2015-03-30 16:58:13 +08:00
 ibeta

有一批文件需要重命名,如下:
../a/1.txt => ../a/a-1.txt
由于文件比较多,最好能在根目录下选取 * .jpg 进行替换。
大概看了一下rename命令,不知道怎么操作文件的父文件夹名称。
感谢回答。

3052 次点击
所在节点    问与答
5 条回复
scusjs
2015-03-30 17:05:49 +08:00
pwd | awk -F '/' '{print $NF}' 取得父文件夹名字,剩下的就是按照你要求改改就好
imn1
2015-03-30 17:13:18 +08:00
find "路径" -type f -iname "*.jpg" -exec rename "s/([^\/]+)\/([^\/]+$)/\$1-\$2/g" {} \;

先测试一下再用
ibeta
2015-03-30 17:30:40 +08:00
@scusjs 我在win下用cmder,不知道为什么print的是完整路径名。
@imn1 测了一下报错
find: missing argument to `-exec'
Havee
2015-03-30 18:02:30 +08:00
for i in `find . -type f -name "*.jpg"`; do mv $i `pwd | awk -F '/' '{print $NF}'`-`basename ${i}`; done
Havee
2015-03-30 18:06:30 +08:00
for i in `find . -type f -name "*.jpg"`; do mv $i `pwd | awk -F '/' '{print $NF}'`-${i}; done

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

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

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

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

© 2021 V2EX