No OS X Lion em zsh, como posso configurar um diretório / Users / username / tmp que é excluído após X dias?


1

Eu sou novo em scripts e trabalhos regulares no OS X, por isso agradeço a ajuda antecipadamente.

Eu estou olhando para ter um diretório tmp no meu homedir, como em / Users / username / tmp que eu posso usar como meu diretório "downloads".

Meu objetivo é ter arquivos / diretórios neste diretório delete depois de dizer 10 dias após o atime (último acesso).

Então eu estou procurando um script e também o método para executá-lo regularmente no OS X Lion usando ZSH como o shell.

Obrigado.

Respostas:


1

Escreva um script que apague arquivos em uma pasta se o seu atime for anterior a dez dias, e execute-o diariamente (não sei qual é o melhor mecanismo para isso no OSX; no Linux eu usaria anacron ou falharia que executá-lo de hora em hora com cron).

Exemplo de script (pega o diretório, por exemplo ~ / downloads, como primeiro argumento):

#!/bin/zsh

setopt extended_glob

targetpath=$1

[[ -d $targetpath ]] || (echo "Directory does not exist" 1>&2 && exit 1)

rm ${path}/**(.a+10) # ** will match recursively, and the bit in brackets is an
# extended glob qualifier, matching ordinary files with an atime more than ten days ago.
unsetopt extended_glob
exit 0

Há provavelmente todo tipo de coisas erradas com isso, e se você usa habitualmente o extended_glob, você não precisa ativá-lo e, mais tarde, no script, naturalmente.


O meu entendimento de setoptfoi que a opção é definida apenas no shell atual (e não é salvo em qualquer lugar), então você não precisa de unsetopt extended_globlá (mas a menos que você tem setoptisso na sua .zshenv, você vai precisar setoptlo no script).
— Blacklight brilhando

@BlacklightShining Ah. É bom saber que falhar em desanimá-lo não causará problemas. Obrigado.
— Darael

Normalmente, setoptentra ~/.zshrc, que não é lido zshantes de executar scripts. Assim, você deve sempre ter as setoptopções necessárias no início de cada script, como você fez aqui. (Novamente, você não precisa unsetoptdeles, no entanto.)
— Blacklight Shining

Sim, entendi que era definitivamente necessário para setopteles.
— Darael
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.