2016-02-12 10 views
1

我正在嘗試查找文件夾的大小,並向其中添加1M。 1M只是因爲其他原因需要的空間。在Bash中將數字添加到可變大小中

這是我曾嘗試:

echo $($(du -sh myFolder) + 1) # command not found: 170M 
echo $(`du -sh myFolder` + 1) # same as above 

我希望能夠將此保存到一個變量,這樣我可以在dd呼叫時使用。

回答

1
echo $(($(du -sb myFolder | cut -f1)+1048576)) 

du -sb給出以字節爲單位的單個sumarized結果。

+0

這給了我錯誤,「壞的數學表達式:運算符預期在'1157680 \ n40 ...'」 –

+0

@ chris13524編輯了答案,'s(sumarize)失蹤了。 –

1

選擇,如果您不能使用-b作爲若昂·莫賴斯建議:

expr `du -hs myFolder | awk '{print $1}' | tr -d M` + 1 

echo $((`du -hs myFolder | awk '{print $1}' | tr -d M` + 1)) 
+0

只有'-h'(人類可讀)標誌找到它想要以MB表示的大小時,這纔會起作用。我有,例如:'du -hs/u6' '155G/u6' –

0

還有一種方法:

BLOCKSIZE=1048576 du -s myFolder | awk '{print $1+1}' 

,或者放在一個變量:

mbs=$(BLOCKSIZE=1048576 du -s myFolder | awk '{print $1+1}') 

適用於Linux,BSD和OS X(可能還有其他)。

相關問題