我需要重命名文件夹中已存在名称的任何文件。重命名后我可以移动它。
if [ -e $BACKUP$PARAM1 ]; then
echo -e "In this directory there is already a file with the same name. \n"
read -p "Please, write a new filename: " newname
mv "$PARAM1" "$newname"
mv $PARAM1 $BACKUP
fi
第一个mv命令不起作用。有什么想法解决它?
我写了一个肮脏的模拟:
在$BACKUP$PARAM1
中,文件的完整文件夹已移至备份目录。 $BACKUP
包含"备份/",$PARAM1
包含" song.mp3",所以$BACKUP$PARAM1
= Backup / song.mp3。
如果在备份文件夹中已经存在一个名为" song.mp3"的文件,我将重新命名我的文件,然后再进入备份。
所以我写了一个新的文件名:" music.mp3",存储在$newname
中,然后使用mv命令继续更改名称:mv "$PARAM1" "$newname"
---> " Song.mp3的"到" music.mp3"。
在和,我将重命名的文件移动到"备份"文件夹:mv $PARAM1 $BACKUP
获取:"备份/ music.mp3"。
答案 0 :(得分:1)
if [ -e "$BACKUP$PARAM1" ]; then
echo -e "In this directory there is already a file with the same name. \n"
read -p "Please, write a new filename: " newname
mv "$BACKUP$PARAM1" "$BACKUP$newname"
fi
您可以重命名文件,同时将其移至备份,如上所述。也可以使用绝对路径名代替" $ PARAM1"使用" $ BACKUP $ PARAM1"。
同时检查您的后台目录的路径名是否正确,例如而不是"备份/"它可能是" /备份/"如果备份目录在另一个目录中