shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] duvidas: find e $0


From: Flavio Junior
Subject: Re: [shell-script] duvidas: find e $0
Date: Wed, 19 Mar 2008 09:05:01 -0300

Nao precisa usar o for com find..
Use só o find ou find + xargs :

find /diretorio -type f -mtime +DIAS -exec rm -f {} \;
ou
find /diretorio -type f -mtime +DIAS | xargs rm -f

Conselho: use o -type f, pra não acabar removendo um diretorio e todo
conteudo pra baixo (o q nao seria legal) ou evitar de tentar remover um
diretorio sem o -r e ele reclamar ou perder tempo...


-----
$ man bash
 source filename [arguments]
              Read and execute commands from filename in the current shell
environment and return the exit status of the last command executed from
file-
              name.   If  filename does not contain a slash, file names in
PATH are used to find the directory containing filename.  The file searched
for
              in PATH need not be executable.  When bash is not in posix
mode, the current directory is searched if no file is  found  in  PATH.
If  the
              sourcepath  option  to  the  shopt  builtin command is turned
off, the PATH is not searched.  If any arguments are supplied, they become
the
              positional parameters when filename is executed.  Otherwise
the positional parameters are unchanged.  The return status is the status of
the
              last command exited within the script (0 if no commands are
executed), and false if filename is not found or cannot be read.


o "." e o source são similares... Acho que isso ai "Read and execute
commands from filename in the current shell environment" responde a sua
duvida..


--

Flavio do Carmo Junior
#bash-br @ irc.freenode.net

2008/3/19 romano <address@hidden>:

>   Gente eu preciso ler uma pasta e deletar todos os arquivos mais velhos
> que uma certa data, eu tive a seguinte idéia
>
> for i in `find PARAM_PRI -mtime +PARAM_SEC`
> do
> rm $i
> done
>
> com os param_pri sendo a pasta e o param_sec sendo a data, so que eu
> preciso que ele execute o find somente na pasta que eu passei de origem
> e nao em todas as que existem dentro desta.
>
> podem me ajudar ?
>


>
>
> ----->
>
> Agora é outra dúvida, eu executei aqui em casa um script que usava o
> dirname, quando eu executava ele sem o . no começo ele executava certo
> mas o depois essa variavel deixava de existir, e quando eu digitava com
> . a variável existia mas somente com . e nao com a localização desde a
> raiz;
>
> exemplo do script
> #!/bin/bash
>
> local=$(dirname $0)
> echo $local
> echo $0
>
> quando executado
> romano@romano-desktop:~/desktop$ /home/romano/desktop/teste
> /home/romano/desktop
> /home/romano/desktop/teste
> romano@romano-desktop:~/desktop$ echo $local
> ------> em branco mesmo, não é enter não
> O bash cria um "sub-bash" e executa esse comando e quando termina mata
> aquele sub-bash fazendo com que suas variáveis morram.
>
> Agora com o . na frente
> romano@romano-desktop:~/desktop$ . /home/romano/desktop/teste
> .
> bash
> romano@romano-desktop:~/desktop$ echo $local
> .
> porque o . e nao a saída do mesmo script executado sem o . na frente, e
> porque o nome do script é bash e nao teste ???
>
> a maior dúvida é a segunda pergunta mas a maior necessidade é a primeira;
> Att: Bruno Romano
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]