Como desvincular todos os links simbólicos sob o diretório?

0

Gostaria de desvincular os links simbólicos assim:

unlink *

No entanto, diz unlink: extra operand

Gostaria de excluir apenas o arquivo de link, manter o arquivo original.

    
por whitebear 26.05.2017 / 18:59

2 respostas

1

Usando o "*" você está tentando desvincular todos os arquivos e diretórios em sua localização atual.

unlink não pode manipular arquivos ou diretórios, ele pode manipular somente links, usar o comando find para encontrar todos os links e desvinculá-los, assim:

find . -type l -exec unlink {} \;
    
por 26.05.2017 / 19:21
0

Eu evitaria gerar outros processos com find … -exec … . Quando você precisar unlink ou rm dos resultados de find , use sua opção -delete .

find -maxdepth 1 -type l -delete

Este comando encontrará todos os links simbólicos ( -type l ) no diretório atual (não em subdiretórios; seu * não desce para os subdiretórios, portanto, suponho que isso é o que você deseja) e exclua-os. O comportamento padrão é não seguir links simbólicos, então os arquivos originais não serão afetados.

    
por 26.05.2017 / 19:29

Tags