#!/bin/bash IFS=$'\n' # ------------------------------------------------------------------ # Script que facilita a procura por varios tipos de arquivos # ------------------------------------------------------------------ # 1o parametro, caminho a comecar a procurar # 2o... tipos de arquivos a serem procurados # Exemplo: procurar.sh /root *.txt *.pas *.doc # Fazendo verificacao dos parametros minimos. # $# retorna a quantidade de parametros if [ "$#" -lt "2" ]; then echo "" echo "Utilizacao:" echo "# $0 /usr/ *.txt *.doc *.gz ..." echo "" exit 0 fi # $1 - path # $2 a $... - tipos de arquivos # Inicio do script, $1 contem o path INICIO="/usr/bin/find $1" # shift utilizado para decrescer o numero de argumentos repassados # para o script. ($2 vira $1, $3 vira $2 e assim por diante) shift # Contador x=1 # Conteudo do meio MEIO= # Laco somente para os tipos a serem procurados # $@ retorna os parametros for i in "$@" do MEIO="$MEIO\( -iname \"$i\" -printf \"%h/%f\\n\" \)" # Esta condicao eh apenas para acrescentar a virgula ao final if ! [ "$x" -eq "$#" ]; then MEIO="$MEIO , " fi x=$(expr $x + 1) done # Para ver como ficou o script echo "$INICIO $MEIO" echo "" # Executando efetivamente o script eval "$INICIO $MEIO"