Como posso escrever um pequeno script para limpar todos os arquivos do diretório quando o computador é iniciado?

9

Eu tenho um computador convidado apenas para uso da internet. Alguns usuários baixam alguns arquivos e os deixam na área de trabalho, mas o computador não tem espaço suficiente para todos os convidados e não é permitido colocar um arquivo nele.

O que eu quero fazer é limpar todos os arquivos dentro do diretório inicial quando o computador for iniciado, mas manter a estrutura de diretório como Music, Pictures, Documents & amp; Transferências.

Como posso conseguir isso?

    
por Achu 29.08.2011 / 16:48

4 respostas

14

Você pode remover com segurança todos os arquivos no diretório inicial, porque eles são recriados, além dos arquivos copiados na criação do usuário de /etc/skel , então

#!/bin/bash

shopt -s dotglob 
rm -rf /home/username/*
sudo -u username cp -a /etc/skel/* /home/username/

onde username deve ser substituído por algo significativo.

Por sua solicitação ("quando o computador é iniciado"), isso pode ser executado a partir de /etc/rc.local . Mais provavelmente, você quer executá-lo entre cada um para logins, então coloque-o em /etc/gdm/PostSession ou /etc/gdm/PreSession .

    
por enzotib 29.08.2011 / 16:59
6

Você está descrevendo a sessão do convidado. Eu não tenho certeza de como isso funciona, mas em 11.10 ele é mostrado por padrão na tela de boas vindas. Essa conta faz exatamente o que você quer, então a pergunta é se você quer perder tempo tentando recriá-la no 11.04, ou se preferir esperar até que você esteja confortável com a atualização para 11.10. Está entrando no Beta 1 na quinta-feira. Em qualquer caso, não faz mal baixar e inicializar uma sessão ao vivo e ver como você gosta. Se é exatamente do jeito que você quer, então você saberá como recriá-lo.

    
por Jo-Erlend Schinstad 29.08.2011 / 18:13
2

Crie um script com um nome de sua escolha e adicione este conteúdo:

rm -r ~/Music/*
rm -r ~/Pictures/*
rm -r ~/Documents/*
rm -r ~/Videos/*
rm -r ~/Downloads*
rm -r ~/Desktop/*

Salve este arquivo, marque-o como executável e adicione-o aos seus aplicativos de inicialização (para a conta que precisa ser limpa).

Isso limpará todos os arquivos nesses diretórios. No entanto, limpar o conteúdo de ~/ em si é um pouco mais complexo e atualizarei minha resposta se encontrar uma maneira segura de fazer isso.

    
por RolandiXor 29.08.2011 / 16:56
1

Você poderia fazer algo como

#!/bin/bash

rm -rf /home/Guest/Desktop/*
rm -rf /home/Guest/Documents/*
rm -rf /home/Guest/Downloads/*
rm -rf /home/Guest/Music/*
rm -rf /home/Guest/Pictures/*
rm -rf /home/Guest/Videos/*

Salve isso como algo parecido com cleanup.sh e torne-o executável com chmod +x cleanup.sh . Então você pode chamar ./cleanup . Note que isso remove tudo nestas pastas, use com cuidado. Não se esqueça de alterar "Convidado" para o nome do seu usuário.

Você pode fazer isso na inicialização, adicionando-o às preferências de Aplicativos de Inicialização.

Você também pode adicionar esse script como uma tarefa do cron em seu sistema para que ele seja executado todas as noites. Veja aqui para mais informações sobre trabalhos agendados.

    
por Kris Harper 29.08.2011 / 16:55