On Oct 18, 2008, at 8:13 PM, mouss wrote:
Jussi Hirvi a écrit :
Since when is there a limit in how long directory listings CentOS
can show
(ls), or how large directories can be removed (rm). It is really
annoying to
say, for example
rm -rf /var/amavis/tmp
and get only "argument list too long" as feedback.
I doubt this. "argument list too long" is a shell error, and in your
command the shell doesn't see many arguments.
I guess you want to remove amavisd-new temp files and you did
rm -rf /var/amavis/tmp/*
In this case, the shell would need to replace that with
rm -rf /var/amavis/tmp/foo1 /var/amavis/tmp/foo2 ....
in which case, it needs to store these arguments in memory. so it
would
need to allocate enough memory for all these before passing them to
the
rm command. so a limitation is necessary to avoid consuming all your
memory. This limitation exists on all unix systems that I have seen.
Is there a way to go round this problem?
Since amavisd-new temp files have no spaces in them, you can do
for f in in /var/amavis/tmp/*; do rm -rf $f; done
(Here, the shell does the loop, so doesn't need to expand the list at
once).
alternatively, you could remove the whole directory (rm -rf
/var/amavis/tmp) and recreate it (don't forget to reset the owner and
permisions).
I have CentOS 5.2.
Possible to learn something new every day. I would have expected the
for loop to fail too, thinking it would attempt to expand the wildcard
before starting it's iteration.
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos