Voila, je dispose de deux path, et je voudrais savoir si ces deux path pointent vers le meme fichier. Par exemple,
path1="./test/../titi"
path2="titi"
la ils pointent vers le meme fissier titi
Voila, je dispose de deux path, et je voudrais savoir si ces deux path pointent vers le meme fichier. Par exemple,
path1="./test/../titi"
path2="titi"
la ils pointent vers le meme fissier titi
Il faut accéder aux attributs du fichier du "path2" et comparer le path absolu de ce fichier avec "path1".
Mais ces manipulations dépendent du système utilisé.
je tourne sous netBSD,
comment obtenir le chemin absolu ?
c koi un numéro d'inode? est-il unique pour chaque fichier ?
getcwdcomment obtenir le chemin absolu ?
Pour le répertoire courant, c'est ça, ensuite, tu construis le chemin en concaténant celui que tu as.
Le numéro d'inode est un numéro utilisé par ton système de fichier pour identifier les différentes composantes du système (dossiers, fichiers ordinaires ou spéciaux). En général il devrait être unique pour chacun des fichiers.c koi un numéro d'inode? est-il unique pour chaque fichier ?
Pour avoir ce numéro, utilise stat.
Pour avoir plus d'info sur l'utilisation de ces fonction, consulte le man.
Avec les liens, symboliques ou non, faire une analyse sur les noms ne suffit pas pour savoir si deux fichiers sont les mêmes.Envoyé par PRomu@ld
Il est unique à l'intérieur d'un système de fichiers. Mais deux fichiers dans des systèmes de fichiers différents peuvent avoir le même numéro d'inode.Le numéro d'inode est un numéro utilisé par ton système de fichier pour identifier les différentes composantes du système (dossiers, fichiers ordinaires ou spéciaux). En général il devrait être unique pour chacun des fichiers.
Il permet aussi d'avoir un identificateur de device, il faut comparer les deux.Pour avoir ce numéro, utilise stat.
Ais-je dis cela ? Je répondais à la question suivante :Avec les liens, symboliques ou non, faire une analyse sur les noms ne suffit pas pour savoir si deux fichiers sont les mêmes.
comment obtenir le chemin absolu ?C'est bien pour cela que j'ai dis "En général"Il est unique à l'intérieur d'un système de fichiers. Mais deux fichiers dans des systèmes de fichiers différents peuvent avoir le même numéro d'inode.
Oops.Envoyé par PRomu@ld
Pour ce problème il y a realpath, mais il résouds les liens symboliques.
En général, on a plusieurs systèmes de fichiers. Je ne me souviens pas avoir utilisé un système unix qui n'en n'avait qu'un de monté en permanence.C'est bien pour cela que j'ai dis "En général"
Oui, c'est rare il est vrai, mais certaines distributions peu scrupuleuses d'une bonne organisation le font (mais là n'est pas la question).En général, on a plusieurs systèmes de fichiers. Je ne me souviens pas avoir utilisé un système unix qui n'en n'avait qu'un de monté en permanence.
En fait, j'avais pensé, à tord surement, que la recherche en question se serait effectuée sur le même système de fichier (une recherche dans le /home par exemple, quoiqu'on puisse y monter différents systèmes de fichiers mais là ça devient tordu...).
Mais il est vrai que j'avais peut être un peu trop simplifié le problème. Dans tous les cas, pour être rigoureux, il faudra bien entendu vérifier le système de fichier sur lequel on travaille.
Bon vu qu'on a les 2 path, pourquoi pas récupérer le nom du fichier et regarder si c'est les mm, si il pointes vers le mm fichier le nom du fichier doit être le nom. Et récupére le nom du fichier d'un chemin , c'est une fonction toute bête a faire. Et voila on se prend pas la tête mdr.
Un même fichier peut avoir plusieurs noms.Envoyé par deck_bsd
oui , mais c'est pas le cas pour sont problème aparement![]()
Qu'en sais tu ? S'il s'agit de lien, ta méthode ne fonctionne pas.oui , mais c'est pas le cas pour sont problème aparement
ce que j'en sais, ben regarde sont exemple tien.
Nous avons supposés que l'exemple était "bidon" puisqu'il s'agit en effet des même fichiers. Nous avons pensé qu'il s'agissait d'un exemple pour illustrer deux fichiers egaux. Si la personne parle d'inode ensuite, c'est qu'il a surement autre chose derrière la tête.
Parce que sinon, une simple simplification du chemin suffit ...
Il faudrait demander au principal interressé pour être sur.
Partager