Étant donné la structure suivante:
oz123@debian:~/ $ tree .
.
a
a1
a2
a3
a1
a11
a12
a31
b
b1
b11
b21
b31
b12
b3
c
16 répertoires, 0 fichiers
Comment puis-je trouver tous les nœuds finaux?
J'ai trouvé les solutions suivantes qui semblent bonnes, mais je dois prouver qu'il n'y a pas de cas de test qui les fera échouer.
La page d'aide de -links
indique:
Vous pouvez également rechercher des fichiers ayant un certain nombre de liens, avec ‘-links’. Les répertoires ont normalement au moins deux liens physiques; leur entrée . est le deuxième. S'ils contiennent des sous-répertoires, chacun de ceux-ci a aussi un lien physique appelé .. vers son répertoire parent. Les entrées de répertoire . et .. ne sont normalement pas recherchées à moins qu'elles ne soient mentionnées sur la ligne de commande de recherche.
Solution possible:
oz123@debian:~/ $ find . -type d -links 2
./a/a2
./a/a3
./a/a1
./c
./a1/a31
./a1/a11
./a1/a12
./b/b1/b12
./b/b1/b3
./b/b1/b11/b21/b31
- Est-ce que quelqu'un peut fournir une meilleure solution (sans utiliser de tubes et de sed, cela doit être performant ...)
- Cela fonctionnera-t-il sur n'importe quel système de fichiers?
0 votes
Cela fonctionnera sur n'importe quel système de fichiers UNIX, je ne sais pas comment les pilotes
vfat
etntfs-3g
émulent la sémantique des inodes.0 votes
@HubertKario, une question très importante: est-ce que cela fonctionnera sur les filers NetApp via NFS?
0 votes
Je ne suis pas sûr de NetApp, mais il fonctionne sur NFS entre les boîtes Linux donc je suppose que oui.