Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is what I tried:

[demo@ ~]# ll /usr/local/apache2/logs/|xargs |du -hm -
du: cannot access `-': No such file or directory

I want to see the amount of space each file occupies in m unit.

How to do it the correct way?

share|improve this question
possible dupplicate of:… – quanta Aug 31 '11 at 11:15
up vote 5 down vote accepted

I'm assuming ll is an alias for ls -l, in which case what's wrong with

du -hm /usr/local/apache2/logs/*
share|improve this answer
du -s /usr/local/apache2/logs/* | sort -rn | cut -f2 | xargs -d '\n' du -sh
share|improve this answer

Ok, not exactly what you asked for, but tree -fis or tree -fih might help you a bit and is a small, compact solution. :)

The first command outputs the recursive directory tree showing also the file size in bytes, the second one is the same but has "human readable" output, showing the size in kilobytes, megabytes, gigabytes... whatever it considers appropriate for that file.

share|improve this answer
This isn't a bad solution, but note that the tree command is not universal -- in fact none of the systems I looked at (FreeBSD, Debian, OS X) have it. – voretaq7 Aug 31 '11 at 16:55
Well, it's universal in a way that it's available for practically all the Linux/BSD systems :) – Janne Pikkarainen Aug 31 '11 at 17:45

Are you trying not to descend into subdirectories?

How about:

find . -type f -maxdepth 1 |xargs du -m 

Pipe to "sort -n" if desired.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.