![查找并重命名文件并删除后缀](https://linux22.com/image/626492/%E6%9F%A5%E6%89%BE%E5%B9%B6%E9%87%8D%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6%E5%B9%B6%E5%88%A0%E9%99%A4%E5%90%8E%E7%BC%80.png)
我正在使用以下命令移动所有以 结尾的文件(非递归)_128.jpg进入128x160subdir。效果很好。
find . -iname '*_128.jpg' | xargs -I '{}' mv {} 128x160
但我还需要删除_128每个文件的后缀。此外,我必须保留当前的参数方法,制作执行每一个都会使这个过程变得非常漫长。
提前感谢您的合作!
答案1
像这样的事情应该可以解决问题:
find . -iname '*_128.jpg' | xargs -I % sh -c 'newname=$(echo % | sed "s/_128//"); mv % 128x160/$newname'
在这里我使用了多命令方法,使用sh -c 'command1; command2'
和sed
清除_128
文件名。