Je veux prendre des données dans /path/to/data/folder/month/date/hour/minute/file
et symlink à /path/to/recent/file
et le faire automatiquement chaque fois qu'un fichier est créé.
En supposant que je ne sache pas à l’avance s’il /path/to/recent/file
existe, comment puis-je procéder pour le créer (s’il n’existe pas) ou le remplacer (s’il existe)? Je suis sûr que je peux juste vérifier s'il existe et ensuite supprimer, un lien symbolique, mais je me demande s'il existe une commande simple qui fera ce que je veux en une étape.
Réponses:
S'il vous plaît lire le manuel .
la source
/path/to/symlink
est déjà un lien symbolique vers un répertoire, sans l'-n
indicateur, vous obtiendrez le lien symbolique créé au/path/to/symlink/target
lieu de le remplacer/path/to/symlink
/path/to/symlink
existe et est un répertoire, mais pas un lien symbolique. Je pense que la seule façon de contourner ce problème est de courir enrm -rf
premier.Ceci est le but de
ln
l'-f
option 's : il supprime les fichiers de destination existants, le cas échéant, avant de créer le lien.créera le lien symbolique
/path/to/recent/file
pointant vers/path/to/data/folder/month/date/hour/minute/file
, remplaçant tout fichier existant ou lien symbolique vers un fichier si nécessaire (et fonctionnant correctement si rien n’y existe déjà).Si un répertoire, ou un lien symbolique vers un répertoire, existe déjà avec le nom de la cible, le lien symbolique sera créé à l'intérieur de celui-ci (vous obtiendrez donc
/path/to/recent/file/file
l'exemple précédent). L'-n
option, disponible dans certaines versions deln
, s'occupera des liens symboliques vers les répertoires pour vous, en les remplaçant si nécessaire:POSIX
ln
ne spécifie pas-n
, vous ne pouvez donc pas compter dessus. Une grande partie duln
comportement de est définie par l'implémentation. Vous devez donc vérifier les spécificités du système que vous utilisez. Si vous utilisez GNUln
, vous pouvez également utiliser les options-t
et-T
pour rendre son comportement parfaitement prévisible en présence de répertoires ( c’est- à- dire, échouez au lieu de créer le lien dans le répertoire existant avec le même nom).la source