如何检查重复文件,如果找到重复项,则附加文件名?

时间:2015-11-24 12:57:44

标签: linux bash shell

我正在使用find命令查找格式化的文件' DGT _ ????。JPG'。我想将这些复制到另一个文件夹。但是,脚本会找到重复的文件名,我试图找到一种方法来附加要复制的源目录中的文件,并使用额外的' .JPG'在文件名的末尾而不是覆盖目标目录中的文件。例如,如果' DGT_0001'在两个文件夹中,源目录中的文件名将被附加到' DGT_0001.JPG.JPG',然后移动到目标目录。

我的代码在

下面
#!/bin/sh
clear

SRC="$1"
DEST="$2"
SUFFIX=.JPG

if [ "$#" -eq 0 ]; then
    echo "two arguments required"
fi

if [ ! -d "$SRC" ]; then
    echo "Source directory does not exist"
    exit
fi

if [ ! -d "$DEST" ]; then
    mkdir "$2"
fi

for image in $(find "$SRC" -type f -iname IMG_[0-9][0-9][0-9][0-9].JPG)
do
    cp "$image" "$DEST"
done

1 个答案:

答案 0 :(得分:1)

您可以cp进行备份:

cp --backup --suffix=.JPG "$image" "$DEST"

来自man cp

--backup[=CONTROL]
       make a backup of each existing destination file

-S, --suffix=SUFFIX
       override the usual backup suffix