【发布时间】:2015-01-06 04:41:01
【问题描述】:
我必须编写一个 Bash 脚本来查看文件是否存在并将文件移动到特定目录,然后如果 .1 已经存在,则使用扩展名 .1 或 .2 等重命名文件。我觉得我有一个好的开始,但即使我可以直接输入 mv 文件目标并且它可以工作,它也无法识别目录。我哪里错了?
#!/bin/bash
DESTINATION="~hbrown31/homework"
FILE=$1
if [ -e "$FILE" ]
then
for $FILE in 'ls|sort -g -r'
do
echo "File is being moved and renamed"
NEWFILE="$DESTINATION""$FILE""."
mv "$FILE" "$(NEWFILE + 1)"
fi
else
echo "File does not exist"
fi
【问题讨论】:
-
你可能需要一个最终的
/DESTINATION,或者使用“$DESTINATION/$FILE” -
另外,$DESTINATION$FILE 可能不是整数,那么增加它是什么意思?
-
正确。我错过了目标路径中的最后一个 / 。当我移动文件时,我必须将 .number 添加到文件名的末尾。如果 .1 已经存在,那么我必须使它成为 .2
-
您确定需要引用
DESTINATION中的波浪号前缀吗?我猜你想要:DESTINATION=~hbrown31/"homework"
标签: bash unix rename move increment