Pages

Saturday 8 June 2013

Linux / Unix: Find All Hidden Dot Directories and Delete

I need to clean up my backups stored on the nas server. I need to free up the disk space. How do I find out all hidden dot directories such 

as/nas01/backups/home/user/.gnome/,/nas01/backups/home/user/.gnome/ and so on and delete then in a single pass using Linux or Unix command line option? Please note that I do not want to delete nested hidden directories such as/nas01/backups/home/user/data/.xml,/nas01/backups/home/user/foo/bar/.level/.levle2/ and so on.

Unix system. The search is recursive in that it will search all subdirectories too. The syntax is:

find /path/to/search criteria action
Here's an example find command using a search criterion and the default print action:
find /nas01/backups/home/user/ -name file-Name-here
To match only directories, use:
find /nas01/backups/home/user/ -type d -name file-Name-here -print0
To match only hidden dot directories, enter:
find /nas01/backups/home/user/ -type d -name ".*" -print0
To descend at most one levels of directories below the command line arguments pass the -maxdepth 1 option. This will avoid deleting nested directories:
find /nas01/backups/home/user/ -maxdepth 1 -type d -name ".*" -print0
Once satisfied with the result, use the xargs command to delete all hidden directories:
 
find .  -maxdepth 1 -type d -iname ".[^.]*" -print0 | xargs -I {} -0 rm -rvf "{}"
 
OR
 
find .  -maxdepth 1 -type d -iname ".*" -print0 | xargs -I {} -0 rm -rvf "{}"
 

No comments:

Post a Comment