使用保存在变量中的新文件名重命名文件

时间:2014-12-10 04:01:04

标签: bash shell file rename

我需要重命名文件夹中已存在名称的任何文件。重命名后我可以移动它。

 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"。

1 个答案:

答案 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"。

同时检查您的后台目录的路径名是否正确,例如而不是"备份/"它可能是" /备份/"如果备份目录在另一个目录中