mv command with progress

When moving large files/directories, I would like to see the progress.

Idea for this is to use rsync with progress and remove source files. But that option does not remove the empty directories left behind so find command to delete that.

So, here is function for that:

mv-progress () 
{ 
    rsync -ah --progress --remove-source-files "$1" "$2";
    find "$1" -empty -delete
}

Highest disk usage of directory in subdirectories

I find myself doing this lot of times so thought will share this with you all. Basically, once I want to clear out the directory, I first want to find out the sub-directory using the maximum disk space so I wrote a function for that and here it is:

 

disk_usage_dirs () 
{ 
    find . -maxdepth 1 -type d -not -name '.' | while read line; do
        du -s "$line";
    done | sort -n | tail -${1:-5}
}

Some other posts you might find useful on this :

Disk usage by file type

Color disk usage on Fedora

Get disk usage for all the containers with python script

ldap search function

First you will need the ldap search utility. The client for ldap search comes in openldap-clients, so you need to install that first:

sudo yum install openldap-clients

Now, that you have installed it, try to find something in some open ldap server, example:

ldapsearch -LLL -h  db.debian.org   -x  -b "dc=debian,dc=org" "cn=Joao*"

This should list couple of entries for you. Now, that you have ldapsearch working, lets define a function in .bashrc file:

 

ldaps () 
{ 
    ( ldapsearch -LLL -h $2 -x -p 389 -b "$3" "cn=*$1*" | awk -F: 'BEGIN {
        last       = "NA"
        first      = "NA"
        name       = "NA"
        loc        = "NA"
        state      = "NA"
        postalcode = "NA"
        homephone  = "NA"
        telephonenumber = "NA"
        mail       = "NA"
        mobile     = "NA"
        printf(" last,first,full name,work#,e-mail,phone3\n");
}
/^sn: /              {last=$2}
/^givenName: /       {first=$2}
/^cn: /              {name=$2}
/^street: /          {address=$2}
/^l: /               {loc=$2}
/^st: /              {state=$2}
/^postalCode: /      {postalcode=$2}
/^homePhone: /       {homephone=$2}
/^telephoneNumber: / {telephonenumber=$2}
/^mail: /            {mail=$2}
/^mobile: /          {mobile=$2}
/^dn/ {
        if(last != "" && first != "" && last != "StoogeAdmin") printf("%s,%s,%s,%s,,%s,%s\n",last,first,name,telephonenumber,mail,mobile)
        last       = "NA"
        first      = "NA"
        name       = "NA"
        address    = "NA"
        loc        = "NA"
        state      = "NA"
        postalcode = "NA"
        homephone  = "NA"
        telephonenumber = "NA"
        mail       = "NA"
        mobile     = "NA"
}
# Capture last dn
END {
        if(last != "" && first != "" ) printf("%s,%s,%s,%s,,%s,%s\n",last,first,name,telephonenumber,mail,mobile)
}' ) | column -t -s ','
}

You might want to chagne few of the matches in the awk in the above script to suit your needs and then you can run this with :

ldaps    "searh string" "search host" "search base"