任何人都可以幫助我解決這個問題嗎?在具有重複文件名的目錄中移動多個文件
我想從我的USB複製圖像到我的電腦上的檔案,我決定做一個BASH腳本,使這項工作更容易。我想複製文件(即IMG_0101.JPG),並且如果檔案中已經有一個具有該名稱的文件(每當我使用它時都會有我擦拭相機的情況),那麼該文件應該命名爲IMG_0101.JPG.JPG我不會丟失文件。
#!/bin/bash
if [ $# -eq 0 ]
then
echo "Usage: $0 image_path archive_path"
exit 999
fi
if [ -d "$1" ] #Checks if archive directory exists
then
echo Image Source directory FOUND
else
echo ERROR: Image Source directory has NOT BEEN FOUND
fi
if [ -d "$2" ]
then
echo Photo Archive FOUND
else
echo Creating directory
mkdir "$2"
fi
if [ find $1 -name "IMG_[0-9][0-9][0-9][0-9].JPG" ] #added this in to be more specific 1/4
then #2/4
for file in "$1"/*
do
dupefile= "$2"/"$file"
while [ -e "$newfile" ];
do
newfile=$newfile.JPG
done
mv "$file" "$newfile"
done
else #3/4
#do nothing
fi #4/4 took all the /4 out, but it's saying theres no such file or directory, even though I've tested it and it says there is.
意外的標記網絡連接,我得到的錯誤,但如果語句需要在那裏,所以我需要的特定文件,越來越移動。
爲什麼不乾脆前綴每everyfile與和索引號?或者你甚至可以用這個數字來替換整個名字,因爲這個文件的名字對你來說並不重要。 –
你應該確保你*不會*用'mv'覆蓋任何現有的文件,甚至不是由於腳本中的錯誤。爲此只需將選項'-n'添加到'mv'。 – scai
你似乎混淆了'newfile'和'dupefile'。堅持一個或另一個。 – tripleee