Este comando é seguro para executar a partir de / as root

2
find . * -depth -print0 | xargs -0 rmdir

Ele encontra e remove todas as pastas vazias (incluindo as ocultas) recursivamente.

Eu só tentei em minha pasta pessoal e em um pendrive no Linux PC e funcionou, mas não sei se é seguro executar a partir de / as root

Uma vez, eu sistemari meu sistema operacional executando algum comando da Internet (que eu não entendi) assim.

    
por Natus Vincere 07.07.2014 / 12:30

3 respostas

6

A página man para rmdir diz: -

Remove the DIRECTORY(ies), if they are empty.

Se você quiser remover todos os diretórios vazios, então será seguro. A pergunta que você precisa fazer é: -

Deseja remover todos diretórios vazios?

Algumas aplicações precisam de um diretório, mesmo que esteja vazio. Por exemplo, journald pode ser configurado para que ele registre apenas no armazenamento persistente se /var/log/journald existir. Se você executar seu comando quando esse diretório estiver vazio, ele será excluído. Depois, journald não registrará no armazenamento persistente, pois não pode encontrar o diretório. Eu acredito que o Fedora é configurado dessa maneira por padrão.

Além disso, os pontos de montagem vazios (desmontados) também podem ser excluídos pelo seu comando. Eles devem ser razoavelmente fáceis de consertar, mas ainda podem te pegar.

    
por 07.07.2014 / 12:40
0

Embora este comando possa ser seguro na maioria dos casos, é um mau hábito usar * onde o comando pode aceitar opções, porque um nome de arquivo começando com um traço (criado por engano ou por uma pessoa maliciosa que poderia ter explorado outro bug) pode ser interpretado como uma opção. Como alguém disse, o * é inútil aqui, mas o que você precisa lembrar é que, especialmente ao executar um comando como root, você precisa controlar todos os argumentos. Em geral, evite globbing sem um prefixo (por exemplo, em vez de * , ./* geralmente é melhor). Além disso, tenha cuidado com links e espaços simbólicos em nomes de arquivos ...

    
por 08.07.2014 / 00:22
-1

find imprimirá todos os arquivos e pastas na árvore de diretórios. xargs executa o comando fornecido - rmdir para cada elemento encontrar retornos.

rmdir não removerá pastas que não estejam vazias e também não removerá arquivos - você pode tentar. mkdir a pasta, touch alguns arquivos dentro dela e, em seguida, execute rmdir na pasta. rmdir vai reclamar com algo parecido com isto: rmdir: failed to remove ‘test’: Directory not empty ou rmdir: failed to remove ‘test.txt’: Not a directory

Então, sim, deve ser perfeitamente seguro. Se você quiser testar, você pode criar um conjunto de pastas de teste usando mkdir e touch e ver se ele faz o que você espera.

Além disso, para mais informações sobre rmdir - e praticamente qualquer comando no * nix, execute man <command> .

    
por 07.07.2014 / 12:43