[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]