J'ai obtenu une fonction qui vérifie si le nom de fichier transmis est .
ou ..
. Mais je ne sais pas comment le nommer correctement. Quelque chose comme IsCurrentOrParentDirectory()
est ambigu, car la fonction prend un nom de fichier et non un chemin complet. (Intuitivement, un collègue programmeur s'attendrait à ce /usr/
que je passe alors que je /usr/
reviendrais true
, alors que ce n'est pas le cas.)
Existe-t-il un terme technique pour ces entrées d'annuaire? S'il y en a un, c'est quoi?
path
technical-writing
Max Truxa
la source
la source
.
et..
sont des noms de fichiers selon la norme POSIX. Voir ma citation ci-dessous. Je dirais que c'est bien ici car il s'agit de concepts informatiques généraux.foo.bar
,foo
...) mais pas un chemin (foo/bar
,/foo/
, ...). Mais comme les répertoires, les liens, etc. sont aussi des fichiers, je vais le laisser comme ça.Réponses:
De la norme POSIX :
Donc, vraiment, si vous voulez vérifier si le nom de fichier est
.
ou si..
vous devez l'appelerIsDotOrDotDot()
, ou, en utilisant la terminologie POSIX de résolution de nom de cheminIsPredecessorOrParentOfPredecessor()
, ou peut-être mêmePointsToPredecessorOrParentOfPrecedessor()
... vous avez l'idée. Le problème est que cette dernière terminologie n'a de sens que lorsque l'on regarde les chemins d'accès complets. Mais personne ne comprendrait ça de toute façon.Considérant que
.
et..
sont valides (noms de fichiers simplement interprétés différemment), vous devriez juste coller à ce que vous avez, en se fondant sur le qui signifie plutôt que la façon dont ils sont appelés en interne.la source
.bash_history
point ou pas point? Je ne sais pas si ce nom de fonction est plus descriptif que l'OP proposé..
ou non..
, et non pas s'il commençait par un.
. Bien sûr, le nom de la fonction de l'OP est plus descriptif; Je lui indiquais simplement à quoi cela fait référence techniquement.IsDotOrDotDot()
dit pratiquement rien sur ce que fait la fonction.IsDotOrDotDot
. Toute personne connaissant les concepts du système de fichiers le comprendrait instantanément. Il est discutable que ce.bash_history
soit «point» car aucun contexte n'est alors fourni pour la signification de «point», mais ce n'est certainement PAS «point ou point point»..
et..
sont généralement utilisés pour décrire des chemins relatifs par rapport à des chemins absolus comme/usr
. J'utiliserais cette différence et déclarerais la fonction commeIsRelativeCurrentOrParentDirectory()
.Sachez que les références point peuvent se produire n'importe où dans le chemin. Et alors
/usr/local/..
?la source
Le standard POSIX, que slhck ♦ cite utilement, dit:
(pas d'italique dans l'original). Ainsi, bien que ce ne soit pas exactement technique , il semble que «nom de fichier spécial» pourrait bien être le nom officiel . Vos utilisateurs comprendraient probablement si vous avez appelé votre fonction une des conditions suivantes:
IsSpecialDirectory()
,IsSpecialFilename()
ou tout simplementIsSpecialName()
.Ou vous pouvez aller avec
IsStandardDirectory()
,IsStandardFilename()
ouIsStandardName()
. Cela suit la convention de dénomination Unix (entrée standard, sortie standard) pour les choses qui sont établies automatiquement pour vous (dans ce cas, parmkfs
etmkdir
).IsAutomatic…()
ouIsDefault…()
, d'autre part, ne sont probablement pas assez intuitifs.la source
IsMagicDirectory()
donc assez proche de cela, mais je pense que votre formulation est beaucoup plus intuitive et appropriée (d'autant plus qu'elle utilise des conventions de nommage établies). L'utilisationIsSpecialFileName
pourrait même indiquer clairement que la fonction ne reçoit pas un chemin mais un nom de fichier (ou répertoire, lien, etc.) unique.IsSpecialFile()
aurait donc été une mauvaise suggestion. Mais je n'ai pas suggéré cela; Ai-je suggéréIsSpecialFilename()
. Alors que les nomssda1
,console
,kmem
,myfifo
eturandom
sont évocateurs, ils ne sont pas réservés et ne sont pas par nature particulière. Mais.
et..
sont des noms de fichiers intrinsèquement spéciaux .Le seul terme que je connaisse du monde * nix est
CWD
pour Current Working Directory. C'est en fait assez souvent utilisé. Voir, par exemple,/proc/$$/cwd
qui est un lien vers le répertoire à partir duquel vous exécutez la commande.Je ne connais aucun nom standard pour en
..
dehors dedot-dot
et comme @slhck l'a souligné, ce n'est pas un bon choix.la source
Posix est assez ambigu sur le fait de parler des relations d'annuaire parent-enfant. Comme d'autres l'ont dit,
.
/..
n'est pas utile pour parler ou communiquer avec d'autres humains.Les structures de fichiers peuvent être considérées comme une structure de données arborescente. Ici, généralement «parent» et «enfant» ou «fille» sont suffisants pour transmettre un sens. Vous verrez que les manuels de structure de données portent cette convention
Alternativement, il semble que l'on puisse parler des arbres comme "en haut" et "en bas" de l'arbre. Par convention, "up" signifie plus proche du répertoire racine, et "down" fait référence aux enfants.
Je pense que l'une
IsCurrentOrUp()
ou l' autreIsCurrentOrParent()
peut être considérée comme une bonne pratique pour nommer les fonctions.la source