Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

for i in *.txt
do 
    #Text files 
    echo  $i
    #checking for existing files
    if [ -f ~/txt/$i ] 
    then 
        j=1
        #Stripping .txt from the files
        temp=${i%".txt"}
        #appending filaname with counter "($j)"
        i=$temp($j).txt
        #move to folder /txt
        mv $i ~/txt
    else
        mv $i ~/txt
    fi
done

My loop checks a folder for an existing file, if that file name exists, the file name is appended (ex (1), (2) etc. Once the file name has been renamed and it is held in $i I try to mv it but I'm getting: mv: cannot stat 'list(1).txt': No such file or directory

I tried mv {$i} ~/txt, mv [$i] ~/txt etc...no luck. Any ideas?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
168 views
Welcome To Ask or Share your Answers For Others

1 Answer

You are overwriting the actually name of the file here:

  i=$temp($j).txt

Instead, use a new variable for the new name. Something like this.

  newname=$tmp($j).txt
  #move to folder /txt
  mv $i ~/txt/$newname

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...