我使用下面的命令将所有文件(非递归),在截至移动_128.jpg到128X160子目录。这很好用。
find . -iname '*_128.jpg' | xargs -I '{}' mv {} 128x160
Run Code Online (Sandbox Code Playgroud)
但我还需要从每个文件中删除_128后缀。另外,我必须保留我当前的xargs方法,为每个方法创建一个exec会使这个过程变得非常长。
预先感谢您的合作!
这样的事情应该可以解决问题:
find . -iname '*_128.jpg' | xargs -I % sh -c 'newname=$(echo % | sed "s/_128//"); mv % 128x160/$newname'
Run Code Online (Sandbox Code Playgroud)
在这里,我使用了多命令方法 usingsh -c 'command1; command2'
和sed
clear_128
在文件名中。