Bash:使用find复制文件,用渐进式数字命名

时间:2015-08-28 15:28:43

标签: bash gnu-findutils

我正在尝试编写一个脚本,使用find命令将目录树中的所有文件复制到另一个目录。但是,某些文件与其他文件具有相同的名称。由于我根本不对文件名感兴趣,我认为最简单的解决方案是将副本渐进数字作为名称。 我试过这个命令:

i=0

find . -iname "*.jpg" -exec  cp {} $DEST_DIR/$i ; i=$i+1;

然而,这个命令显然不会起作用,因为-exec运行一个子shell,其中没有定义i变量。 有没有人有想法这样做,最好是找到?还有其他更好的方法吗?

1 个答案:

答案 0 :(得分:1)

i=0; find . -iname "*.jpg" | while IFS= read -r f; do echo "$f" "$i"; i=$((i + 1)); done

...假设名称中没有空格的文件