Android

Como remover o diretório (delete) no linux

How to remove nodejs from Ubuntu 16.04 / 18.04

How to remove nodejs from Ubuntu 16.04 / 18.04

Índice:

Anonim

Existem várias maneiras diferentes de remover diretórios nos sistemas Linux. Se você usar um gerenciador de arquivos da área de trabalho, como os arquivos do Gnome ou o Dolphin do KDE, poderá excluir arquivos e diretórios usando a interface gráfica do usuário do gerente. Porém, se você estiver trabalhando em um servidor sem cabeça ou quiser remover vários diretórios de uma vez, sua melhor opção é excluir os diretórios (pastas) da linha de comando.

, explicaremos como excluir diretórios no Linux usando os comandos rmdir , rm e find .

Antes de você começar

Quando você remove um diretório usando o gerenciador de arquivos da área de trabalho, o diretório é realmente movido para a Lixeira e pode ser facilmente recuperado.

Seja extremamente cuidadoso ao remover arquivos ou diretórios da linha de comando, porque, uma vez que o diretório é excluído usando os comandos explicados, ele não pode ser totalmente recuperado.

Na maioria dos sistemas de arquivos Linux, a exclusão de um diretório requer permissão de gravação no diretório e seu conteúdo. Caso contrário, você receberá o erro "Operação não permitida".

Os nomes de diretório com um espaço neles devem ser escapados com uma barra invertida ( / ).

Removendo Diretórios com rmdir

rmdir é um utilitário de linha de comando para excluir diretórios vazios. É útil quando você deseja excluir um diretório apenas se estiver vazio, sem precisar verificar se o diretório está vazio ou não.

Para excluir um diretório com rmdir , digite o comando seguido pelo nome do diretório que você deseja remover. Por exemplo, para excluir um diretório chamado dir1 , digite:

rmdir dir1

Se o diretório não estiver vazio, você receberá o seguinte erro:

rmdir: failed to remove 'dir1': No such file or directory

Nesse caso, você precisará usar o comando rm ou remover manualmente o conteúdo do diretório antes de poder excluí-lo.

Removendo Diretórios com rm

rm é um utilitário de linha de comando para excluir arquivos e diretórios. Diferente do rmdir o comando rm pode excluir os diretórios vazios e não vazios.

Por padrão, quando usado sem nenhuma opção, o rm não remove os diretórios. Para excluir um diretório vazio, use a opção -d ( --dir ) e para excluir um diretório não vazio e todo o seu conteúdo use a opção -r ( --recursive ou -R ).

Por exemplo, para excluir um diretório chamado dir1 juntamente com todo o seu conteúdo, você digitaria:

rm -r dir1

Se um diretório ou arquivo dentro do diretório estiver protegido contra gravação, você será solicitado a confirmar a exclusão. Para remover um diretório sem ser solicitado, use a opção -f :

rm -rf dir1

Para remover vários diretórios de uma vez, use o comando rm seguido pelos nomes dos nomes dos diretórios separados por espaço. O comando abaixo removerá cada diretório listado e seu conteúdo:

rm -r dir1 dir2 dir3

A opção -i informa ao rm para solicitar que você confirme a exclusão de cada subdiretório e arquivo. Se o diretório contiver muitos arquivos, isso pode ser um pouco chato, portanto, considere usar a opção -I o que solicitará apenas uma vez antes de prosseguir com a exclusão.

rm -rI dir1

Para remover o diretório, digite y e pressione Enter .

rm: remove 1 argument recursively? y

Você também pode usar expansões regulares para corresponder e excluir vários diretórios. Por exemplo, para remover todos os diretórios de primeiro nível no diretório atual que termina com _bak , você usaria o seguinte comando:

rm -r *_bak

Usar expansões regulares ao remover diretórios pode ser arriscado. É recomendável primeiro listar os diretórios com o comando ls para que você possa ver quais diretórios serão excluídos antes de executar o comando rm .

Removendo diretórios com find

find é um utilitário de linha de comando que permite procurar arquivos e diretórios com base em uma determinada expressão e executar uma ação em cada arquivo ou diretório correspondente.

O cenário mais comum é usar o comando find para excluir diretórios com base em um padrão. Por exemplo, para excluir todos os diretórios que terminam com _cache no diretório de trabalho atual, você deve executar:

find. -type d -name '*_cache' -exec rm -r {} +

Vamos analisar o comando acima:

  • /dir - pesquisa recursivamente no diretório de trabalho atual ( . ). -type d - restringe a pesquisa aos diretórios. -name '*_cache' - pesquisa apenas diretórios que terminam com _cache -exec - executa um comando externo com argumentos opcionais, neste caso, é rm -r . {} + - anexa os arquivos encontrados ao final do comando rm .

Removendo todos os diretórios vazios

Para remover todos os diretórios vazios em uma árvore de diretórios, você usaria:

find /dir -type d -empty -delete

Aqui está uma explicação para as opções usadas:

  • /dir - pesquisa recursivamente no /dir . -type d - restringe a pesquisa aos diretórios. -empty - restringe a pesquisa apenas a diretórios vazios. -delete - exclui todos os diretórios vazios encontrados na subárvore. -delete pode excluir apenas diretórios vazios.

Use a opção -delete com extrema cautela. A linha de comando find é avaliada como uma expressão e, se você adicionar a opção -delete primeiro, o comando excluirá tudo abaixo dos pontos de partida especificados. Sempre use -delete como a última opção e antes de excluir, teste o comando primeiro sem a opção -delete .

/ bin / rm: lista de argumentos muito longa

Essa mensagem de erro aparece quando você usa o comando rm para remover um diretório que contém um grande número de arquivos. Isso acontece porque o número de arquivos é maior que o limite do sistema no tamanho do argumento da linha de comando.

Existem várias soluções diferentes para esse problema. Por exemplo, você pode fazer o cd no diretório e manualmente ou usar um loop para remover os subdiretórios um por um.

A solução mais fácil é primeiro excluir todos os arquivos do diretório com o comando find e depois excluir o diretório:

find /dir -type f -delete && rm -r /dir

Conclusão

Com rm e find você pode excluir diretórios com base em diferentes critérios, de maneira rápida e eficiente.

A exclusão de diretórios é um processo simples e fácil, mas você deve ter cuidado para não excluir dados importantes.

rm rmdir encontrar terminal