Linux
腳本添加的 md5sum 以重複文件名,但在執行時仍會收到錯誤通知
因此,通過使用該站點上其他執行緒的一些資訊,我設法獲得了一個腳本來將文件複製到另一個目錄,然後將 md5sum 添加到重複的文件名中。但是,我並不完全滿意,因為當我執行腳本時我仍然會收到一些 BASH 通知,我可以通過一些幫助理解/解決來做。首先是腳本。
cp -r $dir1/* $dir2 cd $dir2 fdupes -r $dir2 | while read i; do bn="${i%.*}" ext="${i##*.}" md5=$(md5sum "$i" | awk '{ print $1 }') mv -v "$i" "${bn}_${md5}.${ext}" done
執行腳本時我收到的消息是:
md5sum: : No such file or directory mv: cannot stat ‘’: No such file or directory
正如我所說,該腳本似乎確實有效,但任何關於我為什麼收到這些消息的想法,以及任何調整/改進腳本的建議都將不勝感激。謝謝
根據我的理解,我猜命令有一個問題,
fdupes
它在最後輸出一個空行:[PRD][]localhost:~ 12:17:09 $ fdupes -r work/ work/sockperf-sockperf_v2/news work/sockperf-sockperf_v2/src/.dirstamp work/sockperf-sockperf_v2/src/.deps/.dirstamp [PRD][]localhost:~ 12:17:19
然後在循環中處理時,最後一個元素為空,這會
md5sum
在文件不存在時產生錯誤:$ md5sum ' ' md5sum: : no such file of directory
然後腳本嘗試移動這個也會產生
mv
錯誤的空名稱文件。