我想递归地批量复制和重命名目录中的所有文件。
我有这样的事情:
/dir/subdir/file.aa
/dir/subdir/fileb.aa
/dir/filec.aa
并希望将所有文件复制如下:
/newdir/1.xx
/newdir/2.xx
/newdir/3.xx
/newdir/4.xx
..
/newdir/nn.xx
我怎样才能在 bash 中做到这一点?
find -name "*.aa" | cat -n | while read n f; do
cp "$f" newdir/"$n".xx
done
将适用于(几乎)任何有效的文件名(除非其中包含换行符,这也是允许的)。
如果您不限于 shell,则 python 中的另一个解决方案可能是
#!/usr/bin/env python
if __name__ == '__main__':
import sys
import os
import shutil
target = sys.argv[1]
for num, source in enumerate(sys.argv[2:]):
shutil.move(source, os.path.join(target, "%d.xx" % num))
那么可以称为
<script name> newdir *.aa
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)