Excluindo arquivos e esvaziando a lixeira usando o cron

2

Sou novo em criar arquivos crontab e decidi tentar fazer um trabalho que excluiria o conteúdo da minha pasta Downloads e esvaziaria a lixeira. Isso é o que eu tenho:

0 9 * * *   rm $HOME/Downloads/*.*
10 9 * * *  rm -rf ~/.Trash/*

Isso é seguro para ser executado? Eu ouvi muita conversa sobre o uso do comando rm sabiamente. É mesmo necessário remover o lixo ou o rm ignora o lixo?

    
por n0pe 20.04.2011 / 18:11

1 resposta

2

Para responder às suas perguntas:

Is this safe to run?

Depende da sua definição de "salvar". Não vai causar estragos, mas eu não recomendaria isso.

... does rm skip the trash?

O comando rm ignora a lixeira. rm nem sabe sobre o conceito de lixeira. Praticamente todos os comandos de linha de comando não fazem idéia do conceito de lixeira (alguns esquisitos acham divertido ter uma lixeira baseada em terminais).

Se você insistir em um cron job para limpar seu diretório de downloads, eu recomendaria fazer isso da seguinte forma:

find $HOME/Downloads/ -mtime +1 -delete

Isso excluirá todos os arquivos (e diretórios) com mais de um dia. Caso contrário, se você fez o download de algo em 8:59, ele será excluído imediatamente.

Nota: no linux, o curinga *.* significa algo diferente do windows. Eu suponho que você vem do mundo do Windows, onde *.* significa todo arquivo.

Observe:

$ ls
foo  foo..bar  foo.bar  foo.bar.baz
$ echo *
foo foo..bar foo.bar foo.bar.baz
$ echo *.*
foo..bar foo.bar foo.bar.baz
$ echo *.*.*
foo..bar foo.bar.baz
$ echo *..*
foo..bar

* é expandido para tudo, incluindo . , exceto um . inicial, mas essa é uma história totalmente diferente. *.* é expandido para tudo que tenha pelo menos um ponto no meio. *.*.* é expandido para tudo que tem dois pontos. Acho que você entendeu a ideia, o ponto não tem nenhum significado especial na expansão do nome de arquivo. Tenha cuidado, porém, o ponto tem um significado muito especial quando se lida com expressões regulares , mas isso também é uma história completamente diferente.

    
por 20.04.2011 / 18:50

Tags