Linux General Good Housekeeping

Often when i login into my shell, i get this message:

[[email protected] file]#
You have new mail in /var/spool/mail/root

then to find out how big the size of the file is i send this command:

[[email protected] file]#
total 1276
drwxrwxr-x  2 root                 mail    4096 Jan 20 14:59 .
drwxr-xr-x 14 root                 root    4096 Nov 21 13:15 ..
-rw-------  1 root                 root 1284052 Jan 20 14:59 root

ok, one meg is not that bad, but lets say i wanted to empty the file, not delete it, so to do that, the process of reducing an existing file to a file with the same name that is 0 bytes large is called "truncating."

For creating a new empty file, the same effect is obtained with the touch command. On an existing file, touch will only update the timestamp. See the Info pages on touch for more details.

so to empty my root mail file, i would send this command:


To "almost" empty a file, use the tail command. Suppose my error.log file becomes rather long because im gettin alot of errors on my web pages. now to remove all but the last 5 lines i can send this command:

first i want to see how large my file is, from this command you can see its 338384078 bytes

[[email protected] log]# ls -la
total 330792
drwxr-xr-x  2 wallpaperama       4096 Dec 23 13:48 .
drwxr-xr-x 14 wallpaperama       4096 Feb 27 21:49 ..
-rw-r--r--  1 wallpaperama  338384078 Mar  2 11:53 error.log

Now remove all the lines except the last 5

tail -5 error.log > error.log

now i resend the list command and now my error.log file is only 439 bytes
[[email protected] log]# ls -la
total 12
drwxr-xr-x  2 wallpaperama  4096 Dec 23 13:48 .
drwxr-xr-x 14 wallpaperama  4096 Feb 27 21:49 ..
-rw-r--r--  1 wallpaperama   439 Mar  2 11:55 error.log