unlndir script para desfazer os resultados de lndir

0

O comando lndir executa uma cópia de sombra de uma árvore de diretórios, mas usando links simbólicos. Os arquivos são convertidos em links simbólicos em vez de copiados, enquanto os subdiretórios são copiados. Funciona bem, mas também preciso de algum tipo de script unlndir que faça o contrário.

Em outras palavras, o comportamento de unlndir seria:

  • Se houver um link simbólico na árvore de destino apontando para um arquivo na árvore de origem, remova o link simbólico.
  • Executar a tarefa anterior recursivamente para todos os subdiretórios que existem na árvore de origem e na de destino.
  • Se algum subdiretório na árvore de destino ficar vazio, remova-o.

Eu percebo que isso é similar ao que o GNU Stow faz, mas eu estou procurando um script baseado em script simples abordagem.

Você conhece algum script de shell que possa fazer isso?

    
por cesss 24.01.2017 / 11:05

1 resposta

1

Assumindo o GNU find(1) :

find -P /some/dir -type l -xtype f -delete && find -P /some/dir -type d -empty -delete
    
por 24.01.2017 / 11:58