2 votes

Liste des répertoires qui ne sont pas la cible d'un lien symbolique

Utilisation du shell Bash.

J'ai un répertoire avec un grand nombre de sous-répertoires.

Les liens symboliques pointent vers certains d'entre eux. Cela rend la gestion du contenu assez pratique car les liens symboliques ont des noms plus expressifs que les noms de répertoire.

Pour certains autres répertoires, ce travail de redirection est encore incomplet.

Existe-t-il un moyen pour Bash de lister les répertoires qui sont pas de cible d'un lien symbolique (contenus dans le même dossier parent, si cela simplifie les choses) ? Pour moi, cela me renverrait les répertoires sur lesquels je dois encore travailler et m'épargnerait un travail d'âne sujet aux erreurs.

4voto

Léa Gris Points 303

La solution nécessite GNU CoreUtils :

#!/usr/bin/env sh

{
  # Create a list of null delimited symbolic links destination
  find . -type l -printf ./%l\\0

  # Append directories to the null delimited list
  find . -type d -print0
} |

# Sort the null delimited list
sort -z |

# Extract unique entries (those having no symbolic link)
uniq -zu |

# Produce a human-readable list by replacing null delimiters by newlines
xargs -0l

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X