Free Hosting Online for WorkStations

< Previous | Contents | Next >

User-Defined Actions

In addition to the predefined actions, we can also invoke arbitrary commands. The tradi- tional way of doing this is with the -exec action. This action works like this:

-exec command {} ;

where command is the name of a command, {} is a symbolic representation of the current pathname, and the semicolon is a required delimiter indicating the end of the command. Here’s an example of using -exec to act like the -delete action discussed earlier:


-exec rm '{}' ';'

-exec rm '{}' ';'


Again, since the brace and semicolon characters have special meaning to the shell, they must be quoted or escaped.

It’s also possible to execute a user-defined action interactively. By using the -ok action in place of -exec, the user is prompted before execution of each specified command:


find ~ -type f -name 'foo*' -ok ls -l '{}' ';'

< ls ... /home/me/bin/foo > ? y

-rwxr-xr-x 1 me me 224 2007-10-29 18:44 /home/me/bin/foo

< ls ... /home/me/foo.txt > ? y

-rw-r--r-- 1 me me 0 2016-09-19 12:53 /home/me/foo.txt

find ~ -type f -name 'foo*' -ok ls -l '{}' ';'

< ls ... /home/me/bin/foo > ? y

-rwxr-xr-x 1 me me 224 2007-10-29 18:44 /home/me/bin/foo

< ls ... /home/me/foo.txt > ? y

-rw-r--r-- 1 me me 0 2016-09-19 12:53 /home/me/foo.txt


In this example, we search for files with names starting with the string “foo” and execute the command ls -l each time one is found. Using the -ok action prompts the user be- fore the ls command is executed.


Top OS Cloud Computing at OnWorks: