获取unix shell中目录的大小

Tas*_*ies 1 unix size shell tcsh

我是Unix shell环境中编程的新手,我对如何获取目录大小提出了疑问.我读过你可以做的命令如:du,du -b等.但是,当我尝试将它放在我的程序中时,它会以某种方式返回路径名而不是实际的目录大小.这就像连接不起作用或其他东西..garbage文件肯定在我的主目录中,所以我不知道问题是什么.这可能是我忽略的一些愚蠢的错误.如果有任何一双新眼睛或有UNIX经验的人可以为我看看这个我会非常感激!这是我的shell代码:

    #!/bin/tcsh -f

set n = 1

mkdir -p ~/.garbage

while ($n <= $#argv)
 if ( -d $argv[$n] ) then
   echo "$argv[$n] is a directory and cannot be removed"
 else


     mv $argv[$n] ~/.garbage

     echo "The file moved to the garbage directory was: "$argv[$n] "\n"

 endif 
@ n++
end

  echo "The garbage bin's size is: " du ~/.garbage "bytes."
Run Code Online (Sandbox Code Playgroud)

mik*_*yra 5

看来你错过了在回声线上使用命令替换.你必须用这样的反引号来封闭你对du -sh的调用

echo "size is:" `du -sh` "...."
Run Code Online (Sandbox Code Playgroud)