2015-10-13 73 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

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