在查找和移动Bash脚本中包含具有相同名称的不同文件

时间:2013-11-20 14:58:31

标签: linux bash unix find mv

我使用bash脚本搜索和存档不同子目录中的文件。有些文件具有相同的名称;

(例如ABC_000.gif)

然而,它们实际上是不同的图像。是否有一种简单的方法可以通过在文件名末尾添加一个字符串来移动和重命名这些文件,例如原始文件的ABC_000.gif和重复文件的ABC_000.gif.gif

2 个答案:

答案 0 :(得分:1)

$SOURCE是源文件,$DEST是目标文件;这会在$DEST已存在的同时附加后缀,然后移动它。

while [ -e $DEST ]
do
    DEST+=.`<<<$DEST sed 's/.*\.//'`
done
mv $SOURCE $DEST

答案 1 :(得分:0)

试试这个:

#!/bin/bash
i = 0
FILES=`find -name ABC_000.gif | xargs -r`
for FILE in $FILES; do
    mv $FILE ./$FILE_$i
    let "i += 1"
done