2015-10-13 72 views
0

我将我的主目录中的文件复制到新目录。当我尝试重新命名这个新目录中的文件时,主目录中的文件将发生更改,并且新目录中的文件将保留其名称。我的代码如下所示。如何在不重命名原文的情况下重命名复制的文件

srcDir=$HOME 
newDir=$1 
mkdir $1 

cp $srcDir/* $newDir 

for file in newDir/*; do 
    filename=$(basename $file) 
    if [[ SOMETHING ]]; then 
     mv $filename newname 
    fi 
done 

如果任何人都可以告诉我我哪里出错了,我会非常感激。

+0

也许你应该考虑使用[git](http://git-scm.com/)作为你的源代码... –

回答

2

要重命名的文件在当前的工作目录,与

mv ./$filename newname 

您需要预先设置路径:

mv newDir/"$filename" newDir/newname 

或者,改变工作目录:

cd newDir 
for file in * ; do 
    mv "$file" newname 
done 
+0

谢谢你他LP!对于前置解决方案,引号的用途是什么? –

+0

@AndréFoote:如果没有双引号,则不能使用包含空格和其他特殊字符的文件名。 – choroba

+0

再次感谢。真的,非常感谢你! –