2
我想寫一個bash腳本,將遞歸搜索目錄,找到具有相同名稱但不同情況下的文件,並重命名它們。BASH腳本來改變名稱相同的文件名稱,但不同的情況
例如含目錄和file.txt的file.txt的,file.txt的將保持和FILE.TXT將命名爲file.0(或任何數量,只要兩個副本將被保留。)
這裏是我有的代碼,但我看到了問題。要掃描重複名稱的行將更改文件路徑中的大小寫,使其無效。我想不出一種方法來檢測重複,而不刪除路徑中的情況。
#!/bin/bash
#Scan for duplicates
find $1 -name "*"| tr 'A-Z' 'a-z' | sort | uniq -d > ~/case.tmp
#Count changes
i=0
#Make changes
for line in `cat ~/case.tmp`
do mv $line $line.$i
let i++
done
#Print Results
echo "$i file(s) renamed".
感謝您的幫助。
謝謝,這使我可以檢測到重複的名稱附加一個數字,而不是重命名它們,這也會起作用。 – chris