我有下面的代碼,發現有超過10 MB的特定文件:帶空格的Bash文件夾列表?
[[ -n "$1" ]] || { echo "Usage: findlarge [PATHNAME]"; exit 0 ; }
FILES=`find $1 -type f -size +10000k -exec ls -lh {} \; | awk '{ print $9 ";" }'`
echo -ne $FILES
它工作得很好,直到它運行到,在它有一個空間的文件路徑。因此,例如我有一個文件夾,其中有一個大文件/var/www/html/Web Content/largefile.zip
,但該腳本將只返回/var/www/html/Web
。
任何想法如何解決這個問題?
我仍然有同樣的結果。 – Peter
這仍然患有http://mywiki.wooledge.org/BashPitfalls/#for_i_in_.24.28ls_.2A.mp3.29 –
awk仍在使用空格來查找$ 9。真的,你不應該試圖解析'ls'輸出。使用'find -printf'或'stat'或其他東西。 –