Pensando en mi propio trabajo al usar sistemas del linux y de Unix, mucho del trabajo se basa alrededor de archivos, y cuando se está trabajando con los archivos, las herramientas como el comando find es muy útil.
Así que, he decidido juntar esta lista de ejemplos/de recetas del comando find que pondré al día de vez en cuando; en cuanto al comando find existen difrentes maneras de usarlo.
Ejemplos:
- Cómo encontrar todos los archivos debajo del directorio actual que terminan con la extensión de .jsp:
- find. -type f -name “*jsp”
- Cómo encontrar todos los archivos con extension .jsp en el directorio de /users/al
- find /users/al -type f -name “*jsp”
- Cómo encontrar todos los archivos (no directorios) debajo del directorio actual y ejecutanado el comando ls – l :
- find . -type f – exec ls – l {} \;
- Cómo encontrar todos los directorios (no archivos) debajo del directorio actual y ejecutando el comando ls -l :
- find . -type d – exec ls – ld {} \;
Observe que la opción de d del comando del ls es necesario para la impresión el contenido del directorio, el cual no quiero a ver sus atributos del directorio.
Eliminacion de Archivos y Directorios.
Como buscar todos los archivos en el directorio corriente que inicien con las letras “Poop” y que sean eliminados. Hay que tener cuidado con este comando ya que es muy peligroso y no es recomendable para los que apenas estan iniciando en este sistema de Linux o si es que se cuenta con un respaldo antes.
find . -type f -name “Poop*” – exec rm {} \;
Este comanso es aun mas peligroso, ya que encuentra todos los directorio que tienen como nombre CVS y los va eliminando junto con su contenido. Tener cuidado si no se cuenta con un respaldo previo.
find . -type d -name CVS -exec rm -r {} \;
Aqui anexo algunas otras formas de usar el comando find
- Cambiar los permisos de todos los archivos y subdirectorios
for i in $( find . -type d ); do chmod 775 $i; done
for i in $( find . -type f ); do chmod 664 $i; done - Copiar todos los archivos de los subdirectorios a una sola carpeta/folder
for i in $( find . -type f ); do cp $i . ; done - Descomprimir (Unzip) todos lo archivos en subfolders
for i in $( find . -type f ); do bzip2 -d $i; done - Concatenate todos los archivos sql en todos los subfolders
for i in $( find . -type f -name ‘*.sql’ ); do cat $i >> all.sql ; done
- Buscar una cadena en de un archivo en subfolders
find . -name “*” -exec grep “mystring” {} \; -print - más ejemplos en :
http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm
http://www.devdaily.com/unix/edu/examples/find.shtml