Formas de pagamento Abuse

Remoção de links no Linux

10.04.2022, 01:05

Um link em Linux é um ficheiro especial que se refere a outro ficheiro ou diretório. Desta forma, um ficheiro pode ser colocado em vários locais ao mesmo tempo. Quando o ficheiro original é apagado, o link é mantido. Isto pode resultar em crashes e geralmente entope o sistema.

Como eliminar uma ligação

Para começar, vamos explicar o método de verificar se o ficheiro é realmente um link. Isto é convenientemente feito usando o utilitário ls. Depois disso, vamos ver três métodos de remoção, cada um com as suas particularidades.

Verificar se é um link

Com a ajuda do ls, é conveniente ver informações sobre o ficheiro. Para usar o utilitário, dê-lhe a opção -l e especifique o caminho. Como exemplo, tomemos o ficheiro ~/symlinks/link_1:

$ ls -l ~/symlinks/link_1

Remoção de links no Linux

Pode verificar se existem ligações num catálogo inteiro:

$ ls -l ~/symlin

Remoção de links no Linux

Um ficheiro que não seja necessário é marcado com uma seta caraterística a seguir ao seu nome.

Usando Rm

O comando rm pode ser usado para apagar qualquer ficheiro no sistema de ficheiros Linux, incluindo links. Ou seja, ele é adequado para a nossa tarefa. É importante mencionar aqui que o arquivo ou diretório original não será afetado como resultado da exclusão do link.

No terminal, execute o comando:

$ rm ~/symlinks/link_1

Remoção de links no Linux

Além disso, para obter informações detalhadas sobre o procedimento, adicione a opção -v ao comando:

$ rm -v ~/symlinks/link_1

Remoção de links no Linux

Adicionalmente, pode verificar se a ligação desapareceu do diretório. Para fazer isso, use o comando ls descrito anteriormente.

Remoção de links no Linux

Agora você sabe como remover um link simbólico do Linux.

Usando o UNLINK

O utilitário unlink foi concebido para remover ficheiros do sistema de ficheiros Linux. Ele só precisa especificar o caminho para o link:

$ unlink ~/symlinks/link_1

Remoção de links no Linux

Dentro do escopo da tarefa em questão, rm e unlink funcionam de forma quase idêntica. Agora vamos passar para o último método.

Usando o Find

Com a ajuda do comando find pode procurar e apagar ligações num determinado diretório. Isto significa que não precisa de usar o ls adicionalmente.

Remoção de links no Linux

Ao contrário das duas opções anteriores, este comando tem caraterísticas bastante avançadas, por exemplo, a definição de critérios de pesquisa. Mas a sintaxe também não é tão simples por este motivo.

Para pesquisar, é necessário especificar um diretório e alguns parâmetros:

$ find ~/symlinks/ -type l -print

Remoção de links no Linux

O parâmetro -type l é necessário para selecionar apenas as ligações simbólicas, -print para produzir o nome completo. E com a ajuda de -maxdepth pode especificar a profundidade da pesquisa por diretórios aninhados. Se especificar 1, a pesquisa será efectuada apenas no próprio diretório, sem anexos:

$ find ~/symlinks/ -maxdepth 1 -type l -print

Remoção de links no Linux

Quando existem muitas ligações no diretório, pode especificar um padrão de pesquisa para o comando find. Como exemplo, vejamos uma situação em que queremos encontrar apenas ligações ocultas com uma data de última modificação não superior a 30 dias:

$ find ~/data/ -type l -name ".*" -mtime -30 -print

Remoção de links no Linux

Foram adicionados dois critérios:

  • -name - pesquisa por nome.
  • -mtime - por hora de modificação.

Todas as ligações encontradas podem ser apagadas de acordo com o padrão especificado. Para este efeito, -print é substituído por -delete:

$ find ~/data/ -type l -name ".*" -mtime -30 -delete

Remoção de links no Linux

No final da instrução vamos lidar com a procura e eliminação de ligações quebradas que não levam a lado nenhum, por exemplo, depois de apagar o ficheiro ou diretório original. O parâmetro -xtype l é adequado para este propósito. -print não é necessário para a saída:

$ find ~/broken_links/ -xtype l

Remoção de links no Linux

Como resultado, todos os links quebrados serão exibidos no terminal. Para as remover, adicione -delete no fim do comando:

$ find ~/broken_links/ -xtype l -delete

Remoção de links no Linux

Isto completa as instruções para apagar um link no Linux.