1

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

i=0

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

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

4

1 回答 1

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

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

于 2015-08-28T15:34:55.763 回答