Deleting
empty file and directory in Unix
Many times we need to find and delete empty files or directories in UNIX/Linux.
Since there is no single command in Unix/Linux which allows you to remove empty
files or empty directories rather we need to rely on find
command and xargs
command. In this UNIX and linux example we will see How to delete empty
files and directories. Before removing empty files and directories we need to
find those files and there are lots of option available to search for empty directories like find,
grep
, awk etc. You just need to know correct option. Like in any other operating
system empty files and directories in Unix are those whose size is zero. Empty
files doesn't contains any content while empty directories does not contain
anything at all e.g files or sub-directories. As discussed in previous post 10
frequently used find command examples
we can also use find command to search and delete empty files and directories
as it provides searching files based on size as well.
Creating
Empty files and directories in Unix
let's first create empty file and directory to demonstrate example of how
to delete empty files in Unix. We can use same set of commands which we have
used in our example of How
to find size of files and directories in Unix.
//This will create empty file in current directory
test@localhost:~/unix touch
empty.txt
//This
will create empty directory inside current directory
test@localhost:~/unix mkdir empty_dir
//This
command will find all empty files and directories in Unix
test@localhost:~/unix find . -empty
./empty.txt
./empty_dir
Searching Empty Files
and Directory in Unix/Linux
find -empty option prints both empty files
and directories. If you just want to print files than use -type f option and -type d for
listing empty directories. its quite flexible. You can also use grep
command along with ls –lrt to display empty
files and directories as shown below :
//this command will print empty files
test@localhost:~/unix find
. -type f -empty
./empty.txt
//this command will print empty directories
test@localhost:~/unix find
. -type d -empty
./empty_dir
//How
to use grep command to print empty files and directories
test@localhost:~/unix ls
-ltr |
grep '\<0\>'
drwxr-xr-x+ 1 test
Domain Users 0 Jun 15 11:43 empty_dir/
-rw-r--r-- 1
test Domain Users 0 Jun 15 11:44 empty.txt
//find command to print empty files and directories
test@localhost:~/unix find
. -maxdepth 1
-size 0
-ls
90353467524120775 0 drwxr-xr-x 1
test Domain Users
0 Jun 15
11:43 .
9007199255261921 0 -rw-r--r--
1 test
Domain Users 0 Jun 15 11:44 ./empty.txt
19421773393554899 0 drwxr-xr-x 1
test Domain Users
0 Jun 15
11:43 ./empty_dir
Deleting
Empty Files and Directories in Unix
Linux
Now once we certain that there are empty files and directory exists you
can delete them by using find -delete option or executing rm command in
combination with find command as shown below:
//removing Empty files and directories using find
command
test@localhost:~/unix find
. -empty -delete
test@localhost:~/unix find
. -empty -delete
test@localhost:~/unix ls
-lrt
total 1.0K
-rw-r--r-- 1
test Domain Users 118 Aug 4
2011 contacts.txt
//using find and xargs command to remove empty
files and directories
test@localhost:~/unix find
. -empty |
xargs rm
-r
test@localhost:~/unix find
. -empty -type
d -exec rm
-r {}
\;
find: `./empty_dir': Not a
directory
That’s all on How to find and
remove empty files and directories in Unix and Linux host. As I mentioned
there are many ways to find empty files and directory but best way is by using
find command, which not only list empty files but empty directories as well.
Other Unix and Linux command tutorials from Javarevisited Blog
Tidak ada komentar:
Posting Komentar