我正在嘗試查找文件夾的大小,並向其中添加1M。 1M只是因爲其他原因需要的空間。在Bash中將數字添加到可變大小中
這是我曾嘗試:
echo $($(du -sh myFolder) + 1) # command not found: 170M
echo $(`du -sh myFolder` + 1) # same as above
我希望能夠將此保存到一個變量,這樣我可以在dd
呼叫時使用。
我正在嘗試查找文件夾的大小,並向其中添加1M。 1M只是因爲其他原因需要的空間。在Bash中將數字添加到可變大小中
這是我曾嘗試:
echo $($(du -sh myFolder) + 1) # command not found: 170M
echo $(`du -sh myFolder` + 1) # same as above
我希望能夠將此保存到一個變量,這樣我可以在dd
呼叫時使用。
echo $(($(du -sb myFolder | cut -f1)+1048576))
du -sb
給出以字節爲單位的單個sumarized結果。
選擇,如果您不能使用-b作爲若昂·莫賴斯建議:
expr `du -hs myFolder | awk '{print $1}' | tr -d M` + 1
echo $((`du -hs myFolder | awk '{print $1}' | tr -d M` + 1))
只有'-h'(人類可讀)標誌找到它想要以MB表示的大小時,這纔會起作用。我有,例如:'du -hs/u6' '155G/u6' –
還有一種方法:
BLOCKSIZE=1048576 du -s myFolder | awk '{print $1+1}'
,或者放在一個變量:
mbs=$(BLOCKSIZE=1048576 du -s myFolder | awk '{print $1+1}')
適用於Linux,BSD和OS X(可能還有其他)。
這給了我錯誤,「壞的數學表達式:運算符預期在'1157680 \ n40 ...'」 –
@ chris13524編輯了答案,'s(sumarize)失蹤了。 –