2012-02-04 55 views
0

我正在編寫一個shell腳本來列出佔用最多空間的五個文件夾。這是我有:在當前目錄中執行shell腳本

$ du -m --max-depth 1 | sort -rn 5 

這工作正常,但如何獲取此代碼來檢查它從目錄調用?

+5

我有一種感覺,還有更多的問題;以這種方式執行'du'(直接通過命令行或通過shell腳本或通過shell函數)只能在當前工作目錄中執行。你在看什麼?你想看什麼? – sarnold 2012-02-04 01:43:05

回答

0

檢查這是否回答你的問題:

$dir=`pwd` 

if [ $dir = "some_directory_you_are_expecting" ] 
then 
    du -m --max-depth 1 | sort -rn 5 
else 
    do_some_other_thing 
fi 
0

你給「5」作爲文件進行排序,但你想從杜輸出排序。也許你的排序是不同的。我的是從http://www.gnu.org/software/coreutils/

這裏:

$ echo 'du -sm * | sort -rn | head -n5 ' > ~/bin/top5.sh 
raptor: ~ 
$ chmod 755 ~/bin/top5.sh 
raptor: ~ 
$ top 
top  top5.sh 
raptor: ~ 
$ top5.sh 
606  src 
532  svn 
407  tmp 
349  images 
45  workspace 
raptor: ~ 
$ cd /usr/ 
raptor: /usr 
$ top5.sh 
du: cannot read directory `lib64/mozilla/extensions': Permission denied 
du: cannot read directory `lost+found': Permission denied 
du: cannot read directory `share/ggz/modules': Permission denied 
1928 lib64 
1842 share 
1779 src 
492  bin 
457  lib32