La seule façon dont je sais est: mais c'est vraiment lent. Je souhaite trouver un outil comme localiser code>.
Les problèmes réels viennent lorsque vous avez beaucoup de fichier, je suppose que l'opération est O (n). P> p>
4 Réponses :
Qu'est-ce que je ferais généralement: Autre que cela, je pense que c'est à ce sujet. P> ls -i
trouver / dir-depe f -inum
-mount code> pour éviter de rechercher sur différents systèmes de fichiers, qui fait probablement partie de vos problèmes de performance.) P>
Il utilise déjà -xdev code>, qui est identique à celui
-mount code>. Donc, ce n'est pas mieux.
Voici un moyen: p>
Rechercher -Printf "% I: \ T% P Code> ou similaire Pour créer une liste de tous les fichiers préfixés par Inode et sortie dans un fichier temporaire li>
- extrait le premier champ - l'inode avec ':' a annexé - et trier pour apporter des doublons ensemble, puis limiter les duplicats, en utilisant
coupé -f 1 | Trier | UNIQ -D code> et sortie qu'à un deuxième fichier temporaire li>
- Utilisez
fgrep -f code> pour charger le deuxième fichier en tant que liste des chaînes pour rechercher et rechercher le premier fichier temporaire. LI>
ul>
(Lorsque j'ai écrit cela, j'ai interprété la question comme trouvant tous les fichiers qui avaient dupliquer inodes. Bien sûr, on pourrait utiliser la sortie de la première moitié de cela comme une sorte d'index, de l'inode au chemin, d'une manière donnée. localiser les travaux.) p>
sur ma propre machine, j'utilise beaucoup ce genre de fichiers et les garder triés. J'ai également une application d'indexateur de texte qui peut ensuite appliquer une recherche binaire pour trouver rapidement toutes les lignes qui ont un préfixe commune. Un tel outil finit par être très utile pour des emplois tels que celui-ci. P>
Il n'y a pas de mappage de inode code> pour nommer. Le seul moyen est de parcourir l'ensemble du système de fichiers, qui, comme vous l'avez souligné, c'est O (nombre de fichiers). (En fait, je pense que c'est θ (nombre de fichiers)). P>
Je sais que c'est une ancienne question, mais de nombreuses versions de trouvent code> ont une option code> inum code> pour correspondre facilement à un numéro d'inode connu. Vous pouvez le faire avec la commande suivante:
find . -inum 1234
Très bonne réponse. Même mon ancien serveur Gentoo a trouvé l'option -inum code>.
Pour arrêter le premier match, vous pouvez essayer quelque chose comme trouver. -inum 1234 | tête -n1 code>.
Cela fait la même chose que -samefile code> seulement vous devez trouver l'inode vous-même. Cela rend les choses encore plus lentes.
Cf. superutilisateur.com/questions/97367/...