Home > English, OSS Solutions > UNIX Tools – examples

UNIX Tools – examples

Here are a few examples you’ll probably find useful at some point.

Counting the number of lines of a C project

$ wc -l `find -name "*.[ch]"|xargs`

Execute a command on a directory and all its subdirectories

$ find "path" -exec "command" {} \;

Deleting all the files not accessed for 1 day in the current directory and all its subdirectories

$ find . -atime +1 -exec rm -f {} \;

chmod on a directory and all its subdirectories

$ find "path" -type d -exec chmod "chmod args" {} \;

Removing a specific directory from a directory and all its subdirectories

$ find "path" -type d -name "directoryName" -exec rm -rf {} \;

Debian specific: Removing all unneeded *-dev packages
A quick note on what this does: it uses sudo do call dpkg to purge the packages listed by deborphan, ending in “dev”. See more on this on Debian-specific resources like: http://www.bxlug.be/rubrics/20.

$ sudo dpkg -P `deborphan -a|grep dev$|cut -b26-`

or (equivalent using xargs)

$ deborphan -a|grep dev$|cut -b26-|xargs sudo dpkg -P

Add a «<?php» line to the beginning of a set of PHP files

$ find -name "*.php" -exec sed -i '1 s/^/<?php\n/' {} \;

rsync

$~/foo: rsync -avz . host:dst/
$~/foo: rsync -avz * host:dst/

The first command will synchronize the folder ” /foo/” with the one ” /dst/foo/” on host.
The second command will synchronize the folder ” /foo/” with the one ” /dst/” on host. Options

-a –archive archive mode
-v –verbose increase verbosity
-z –compress compress file data
-n –dry-run show what would have been transferred
-u –update update only (don’t overwrite newer files)
-C –cvs-exclude auto ignore files in the same way CVS does
–progress show progress during transfer
This article was first written in July 2003 for
the BeezNest technical website (http://glasnost.beeznest.org/articles/48)
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: