Você pode usar a ferramenta útil inoticoming
para monitorar sua pasta ~/Desktop
para arquivos recebidos e executar automaticamente uma ação em cada evento, como movê-los para um local diferente.
Observe que este comando só presta atenção aos arquivos criados ou modificados somente .
Ele irá ignorar quando você criar um novo diretório lá. Ele também irá ignorar arquivos criados ou modificados em qualquer subdiretório.Eu tentei criar um comando que também reaja nos diretórios, mas isso parece impossível, a menos que você esteja certo com o efeito colateral de copiar diretórios para o local observado falharem aleatoriamente porque
inotifywatch
move o diretório de destino antes que a cópia de todos os arquivos seja concluída .
inoticoming
não vem pré-instalado com o Ubuntu, mas você pode simplesmente instalá-lo uma vez executando
sudo apt-get install inoticoming
Então você digita esse comando abaixo e vê a mágica acontecer:
inoticoming --foreground --initialsearch ~/Desktop --chdir ~/Desktop mv -- '{}' ~/Desktop/new \;
Parâmetros explicados:
-
--foreground
faz a ferramenta ser executada em primeiro plano e imprimir informações de log no terminal sempre que ele faz alguma coisa. Isso é bom para testes iniciais e depuração.Uma vez que você tenha certeza de que faz o que você quer, você pode omitir este argumento e deixar bifurcar um daemon de fundo, o comando retornará imediatamente e não produzirá nenhuma saída. Você faria isso se quiser autostartar o comando, por exemplo. durante o login. Pode fazer sentido configurar arquivos de log nesse caso, por favor, veja
man inoticoming
para mais informações sobre isso. -
--initialsearch
realiza uma varredura adicional de todos os arquivos no diretório que já estão presentes quando você inicia o comando. Sem ele, apenas os arquivos criados ou modificados durante a execução são processados. -
~/Desktop
o diretório para assistir -
--chdir ~/Desktop
altere o diretório de trabalho para~/Desktop
antes de executar a ação especificada toda vez que um arquivo aparecer ou for modificado -
mv -- '{}' ~/Desktop/new \;
do comando de ação real que você deseja chamar em cada evento.{}
será substituído pelo nome do arquivo que acionou o evento. Observe como ele é colocado entre aspas simples e precedido por--
para evitar que ele seja dividido ou interpretado por um shell ou como argumento de palavra-chave demv
. O trailing\;
indica o final do comando de ação e é obrigatório.
Quando inoticoming
está sendo executado no modo de primeiro plano, você pode sair pressionando Ctrl + C no terminal.
Para eliminar seus daemons de segundo plano se você os lançou sem --foreground
, o método mais simples é executar killall inoticoming
. Tenha em atenção que isto mata todas as instâncias em execução de inoticoming
. Se você quer certificar-se de matar apenas uma instância específica, pode fazer sentido deixá-lo armazenar seu PID (ID do processo) em um arquivo. Veja man inoticoming
para mais informações sobre isso.