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
私のループは、既存のファイルのフォルダーをチェックします。そのファイル名が存在する場合、ファイル名が追加されます(例(1)、(2)など)。ファイル名の名前が変更されて保持される$iと、mvしようとしますが、私は得ています:
mv: cannot stat 'list(1).txt': No such file or directory
試してみmv {$i} ~/txtましたmv [$i] ~/txt...運が悪い。何か案は?