wim*_*wim 5 bash glob space mv echo
如果这是一个基本的问题,我对bash很新,很抱歉.我试图重命名一堆mp3文件以前置1-到他们的文件名,并且mv *.mp3 1-*.mp3不幸地不起作用.所以我试着编写脚本,先用echo来测试命令:
for f in *.mp3 ; do echo mv \'$f\' \'1-$f\'; done
Run Code Online (Sandbox Code Playgroud)
这似乎输出了我喜欢的命令,所以我删除了echo,将命令更改为
for f in *.mp3 ; do mv \'$f\' \'1-$f\'; done
Run Code Online (Sandbox Code Playgroud)
哪个失败了.接下来我尝试将命令向前管道化
for f in *.mp3 ; do echo mv \'$f\' \'1-$f\'; done | /bin/sh
Run Code Online (Sandbox Code Playgroud)
这有用,但如果有人能告诉我为什么中间命令不起作用我会有兴趣知道.或者如果有一个更优雅的单行程可以做我想要的,我也有兴趣看到它.
我认为你必须改变命令
for f in *.mp3 ; do mv "$f" "1-$f"; done
Run Code Online (Sandbox Code Playgroud)
否则,你会通过类似'file1.mp3'并'1-file1.mp3'以mv(包括单引号).
干运行:
rename -n 's/^/1-/' *.mp3
Run Code Online (Sandbox Code Playgroud)
-n如果它看起来正确,请删除它以运行该命令.man rename详情.
| 归档时间: |
|
| 查看次数: |
2624 次 |
| 最近记录: |