Getting directory size in unix
-------------------------------
This little hackish script gets you the exact size of a directory
(recursively) in bytes. It's nothing fancy, we just trick rsync
into telling us and scrub the output.
Script:
-------
#!/bin/bash
DIR=${1?Specify a directory}
[ -d "$DIR" ] || { echo "Not a directory: $DIR" && exit 1; }
# We don't actually copy anything (-n is --dry-run)
rsync -n -r "$DIR" /dev/null/ | tail -n1 | perl -pe 's/.*size is ([0-9]+) .*/$1/'
***************************************************
Grep a class name in a jar
---------------------------
Usage:
-------
$ grepjar EXP JARS...
$ grepjar MyClass myapp.jar
Usable with find.
find ~/.m2/repository/ -name '*.jar' -exec grepjar.sh MyClass {} \;
Or find and xargs
find ~/.m2/repository/ -name '*.jar' | xargs grepjar.sh MyClass
Script:
-------
#!/bin/bash
EXP=${1?must specify a pattern}
shift
for n in "$@"; do
jar tvf "$n" | egrep "$EXP"
[ $? -eq 0 ] && echo "$n"
done
***************************************************
Relative to Absolute file path conversions:
-------------------------------------------
Here is a little perl script that can turn relative file paths into absolute file paths.
Couldn't find a command for it, so this is the next best thing.
put this in a bin directory in your path somewhere
rel2abs
#!/usr/bin/perl
use File::Spec;
foreach (@ARGV) {
push @files, File::Spec->rel2abs($_);
}
print join(" ",@files) . "\n";
then just chmod it
# chmod 755 /usr/local/bin/rel2abs
then run it
# rel2abs ~/././*
/root/anaconda-ks.cfg /root/Desktop /root/install.log /root/install.log.syslog /root/setup.txt
***************************************************
Source: http://docs.codehaus.org/display/ninja/Home
Binary Search Tree
8 years ago
I don't understand the first script. How is this better than the (GNU du specific) "du -bc"?
ReplyDelete