我有大量由dropbox服务错误生成的冲突文件,这些文件位于我的本地Linux文件系统中。
例如文件名为compile(master's conflicted copy 2013-12-21).sh。
我想将文件重命名为正确的原始名称,例如compile.sh,并删除任何具有该名称的现有文件。最好可以编写脚本或以递归方式执行。
编辑:
在查看所提供的解决方案并进行进一步研究后,我拼凑出了一个对我很有效的东西。
例如文件名为compile(master's conflicted copy 2013-12-21).sh。
我想将文件重命名为正确的原始名称,例如compile.sh,并删除任何具有该名称的现有文件。最好可以编写脚本或以递归方式执行。
编辑:
在查看所提供的解决方案并进行进一步研究后,我拼凑出了一个对我很有效的东西。
#!/bin/bash
folder=/path/to/dropbox
clear
echo "This script will climb through the $folder tree and repair conflict files"
echo "Press a key to continue..."
read -n 1
echo "------------------------------"
find $folder -type f -print0 | while read -d $'\0' file; do
newname=$(echo "$file" | sed 's/ (.*conflicted copy.*)//')
if [ "$file" != "$newname" ]; then
echo "Found conflict file - $file"
if test -f $newname
then
backupname=$newname.backup
echo " "
echo "File with original name already exists, backup as $backupname"
mv "$newname" "$backupname"
fi
echo "moving $file to $newname"
mv "$file" "$newname"
echo
fi
done