2016-04-19 22 views

回答

1

生成包含紅色的文件很簡單;你可以用*red*這個模式來做到這一點。棘手的部分是找出這是否是一個JPEG文件。你可以這樣做

改進
for f in *red* 
do 
    if file $f | fgrep -q ' JPEG ' 
    then 
    echo $f >>red_photos.txt 
    fi 
done 

兩個問題是作爲一個練習(因爲它們不直接相關的問題):

  1. 如果有含紅色真的很多文件,你可能會得到一個「參數列表太長」的錯誤。

  2. 如果包含紅色沒有文件,你可能會得到一個錯誤信息說,通配符不匹配任何文件(根據設置在你的bash腳本)。

+0

爲什麼不使用'mv'來重命名文件呢? – hedgehog

+1

因爲您將移動所有文件,而不僅僅是包含JPEG圖片的文件。由於您無法從文件名知道它是否爲JPEG,因此您必須單獨處理每個文件。不可否認,這也不是100%安全的,因爲'file'命令不能做出超過教育的猜測(即它可能產生誤報),但總體上它是可靠的。 – user1934428

+0

哦,我看...謝謝你的解釋:) – hedgehog

相關問題