Le meilleur moyen de lier symboliquement tous sauf un fichier?

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Août 25th, 2010, 10:12 am

J'ai besoin de dupliquer un dossier qui contient les fichiers modèles HTML pour un forum, à l'exception d'un seul fichier qui contiendra quelques modifications spécifiques à une catégorie. Je ne veux pas modifier tout à la fois dans des lieux tout moment j'ai besoin de faire un changement global, alors Im pensant que je peux tous les liens symboliques, mais ce fichier un. De cette façon, je n'ai qu'à modifier un fichier global des modifications, et le fichier de catégorie spécifique est le seul que je dois modifier dans les deux endroits.

Quelle serait la façon la plus simple de lier symboliquement tous les fichiers dans un dossier, sauf pour un seul fichier?
Strong with this one, the sudo is.
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Août 25th, 2010, 10:12 am

  • Daemonguy
  • Moderator
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Jan 23, 2004
  • Messages: 2673
  • Loc: Somewhere outside the box in Sarasota, FL.
  • Status: Offline

Message Août 25th, 2010, 10:57 am

Peut-être que je ne comprends pas, mais qu'en est-il un lien symbolique du dossier lui-même?

Par exemple;

/ Folder_of_files / fichiers

/ Folder2 -> / folder_of_files / fichiers

Puis un troisième dossier avec le spécifique;
/ Folder_of_static_file / fichier

Puis dossier ref 1 et 3 dans le dossier du seul document HTML et folder2 et le dossier 3 dans l'autre?

Une autre option est de mettre en place rsync
http://www.samba.org/ftp/rsync/rsync.html

Qui, je crois peut être utilisé sur le même nœud, sans la nécessité de scping des fichiers d'un serveur à un autre.

Peut-être une meilleure option est csync ou l'unisson?
"It's always a long day, 86,400 won't fit into a short."
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Août 25th, 2010, 5:39 pm

Im travaillant autour de la façon dont le logiciel de forum (phpBB3) utilise des modèles HTML. J'ai besoin de garder tous les fichiers dans le même dossier pour chaque modèle. Les deux modèles seront sur le même serveur. (Dans le même sous-dossier)

Si je devais passer par un lien symbolique et chaque fichier manuellement fin Id, avec quelque chose comme ceci

Code: [ Select ]
templates/

templates/one/a.html
templates/one/b.html
templates/one/c.html

templates/two/a.html -> ../one/a.html
templates/two/b.html
templates/two/c.html -> ../one/c.html
  1. templates/
  2. templates/one/a.html
  3. templates/one/b.html
  4. templates/one/c.html
  5. templates/two/a.html -> ../one/a.html
  6. templates/two/b.html
  7. templates/two/c.html -> ../one/c.html


Heres ce que j'ai essayé tout à l'heure.

BASH Code: [ Select ]
#
# Current state of the template directory
#
me@box:~$ mkdir templates
me@box:~$ cd templates
me@box:~/templates$ mkdir one
me@box:~/templates$ touch one/a one/b one/c
me@box:~/templates$ ls one
a  b  c
 
#
# What I tried
#
me@box:~/templates$ ln -s one two
 
#
# Echo into one, cat out two; change is reflected
#
me@box:~/templates$ echo "file a" > one/a
me@box:~/templates$ cat two/a
file a
 
#
# Echo into two, cat out one; change is reflected
#
me@box:~/templates$ echo "file c" > two/c
me@box:~/templates$ cat one/c
file c
 
#
# Try using an editor, thinking it will dereference the symlink and create a copy of the file
# change is still reflected
#
me@box:~/templates$ nano two/b
me@box:~/templates$ cat two/b
file b
me@box:~/templates$ cat one/b
file b
 
#
# Try to copy from one to two, to overwrite symlink with copy of the file
#
me@box:~/templates$ cp one/b two/b
cp: `one/b' and `two/b' are the same file
  1. #
  2. # Current state of the template directory
  3. #
  4. me@box:~$ mkdir templates
  5. me@box:~$ cd templates
  6. me@box:~/templates$ mkdir one
  7. me@box:~/templates$ touch one/a one/b one/c
  8. me@box:~/templates$ ls one
  9. a  b  c
  10.  
  11. #
  12. # What I tried
  13. #
  14. me@box:~/templates$ ln -s one two
  15.  
  16. #
  17. # Echo into one, cat out two; change is reflected
  18. #
  19. me@box:~/templates$ echo "file a" > one/a
  20. me@box:~/templates$ cat two/a
  21. file a
  22.  
  23. #
  24. # Echo into two, cat out one; change is reflected
  25. #
  26. me@box:~/templates$ echo "file c" > two/c
  27. me@box:~/templates$ cat one/c
  28. file c
  29.  
  30. #
  31. # Try using an editor, thinking it will dereference the symlink and create a copy of the file
  32. # change is still reflected
  33. #
  34. me@box:~/templates$ nano two/b
  35. me@box:~/templates$ cat two/b
  36. file b
  37. me@box:~/templates$ cat one/b
  38. file b
  39.  
  40. #
  41. # Try to copy from one to two, to overwrite symlink with copy of the file
  42. #
  43. me@box:~/templates$ cp one/b two/b
  44. cp: `one/b' and `two/b' are the same file


Im pensant que je symboliquement le répertoire, au lieu de fichiers individuels, Im ne sera pas en mesure de remplacer un fichier "symboliquement" avec un vrai fichier parce que le nouveau répertoire est un lien symbolique et non pas un véritable répertoire.

Maintenant, comme je vais sur "cp - help", je tombe sur un lien symbolique mention de fichiers au lieu de les copier.

Maintenant que je cherche, je pense Ive a obtenu ce qui Im recherchez.

BASH Code: [ Select ]
me@box:~/templates$ cp -s one/* two
#cp: `two/a': can make relative symbolic links only in current directory
#cp: `two/b': can make relative symbolic links only in current directory
#cp: `two/c': can make relative symbolic links only in current directory
me@box:~/templates$ ls two
me@box:~/templates$ cd two
me@box:~/templates/two$ cp -s ../one/* ./
me@box:~/templates/two$ ls -la
total 8
drwxr-xr-x 2 me me 4096 2010-08-25 20:32 .
drwxr-xr-x 4 me me 4096 2010-08-25 20:28 ..
lrwxrwxrwx 1 me me    8 2010-08-25 20:32 a -> ../one/a
lrwxrwxrwx 1 me me    8 2010-08-25 20:32 b -> ../one/b
lrwxrwxrwx 1 me me    8 2010-08-25 20:32 c -> ../one/c
me@box:~/templates/two$ rm b
me@box:~/templates/two$ cp ../one/b ./
me@box:~/templates/two$ ls -la
total 12
drwxr-xr-x 2 me me 4096 2010-08-25 20:32 .
drwxr-xr-x 4 me me 4096 2010-08-25 20:28 ..
lrwxrwxrwx 1 me me    8 2010-08-25 20:32 a -> ../one/a
-rw-r--r-- 1 me me    7 2010-08-25 20:32 b
lrwxrwxrwx 1 me me    8 2010-08-25 20:32 c -> ../one/c
me@box:~/templates/two$
  1. me@box:~/templates$ cp -s one/* two
  2. #cp: `two/a': can make relative symbolic links only in current directory
  3. #cp: `two/b': can make relative symbolic links only in current directory
  4. #cp: `two/c': can make relative symbolic links only in current directory
  5. me@box:~/templates$ ls two
  6. me@box:~/templates$ cd two
  7. me@box:~/templates/two$ cp -s ../one/* ./
  8. me@box:~/templates/two$ ls -la
  9. total 8
  10. drwxr-xr-x 2 me me 4096 2010-08-25 20:32 .
  11. drwxr-xr-x 4 me me 4096 2010-08-25 20:28 ..
  12. lrwxrwxrwx 1 me me    8 2010-08-25 20:32 a -> ../one/a
  13. lrwxrwxrwx 1 me me    8 2010-08-25 20:32 b -> ../one/b
  14. lrwxrwxrwx 1 me me    8 2010-08-25 20:32 c -> ../one/c
  15. me@box:~/templates/two$ rm b
  16. me@box:~/templates/two$ cp ../one/b ./
  17. me@box:~/templates/two$ ls -la
  18. total 12
  19. drwxr-xr-x 2 me me 4096 2010-08-25 20:32 .
  20. drwxr-xr-x 4 me me 4096 2010-08-25 20:28 ..
  21. lrwxrwxrwx 1 me me    8 2010-08-25 20:32 a -> ../one/a
  22. -rw-r--r-- 1 me me    7 2010-08-25 20:32 b
  23. lrwxrwxrwx 1 me me    8 2010-08-25 20:32 c -> ../one/c
  24. me@box:~/templates/two$
Strong with this one, the sudo is.
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Août 26th, 2010, 11:48 pm

J'ai attrapé ce que vous dites ce matin avec rsync Daemonguy. Je l'ai vu avant, mais quand j'ai lu rsync J'ai pensé que les sauvegardes et les overkill.

Ive à peu près eu ce problème de "travail" pour le moment, Im pas très bien comment près de votre suggestion que je fini par faire a été, mais mal certainement vérifier csync et l'unisson juste pour voir ce qu'ils sont. Il me prend généralement du temps à comprendre les capacités des outils que vous proposez. C'est comme si Je cherche dans ma boîte à outils la pensée «marteau marteau marteau marteau" et vous êtes en soulignant une boîte qui contient une cloueuse de l'air, tuyaux à air, compresseur d'air, une rallonge, et les ongles. :)
Strong with this one, the sudo is.
  • Daemonguy
  • Moderator
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Jan 23, 2004
  • Messages: 2673
  • Loc: Somewhere outside the box in Sarasota, FL.
  • Status: Offline

Message Août 27th, 2010, 10:40 am

:) Doesnt de mal à jouer avec le tuyau d'air de temps en temps. ;)

En fin de compte, si votre solution fonctionne, alors vous avez trouvé la bonne. :)
"It's always a long day, 86,400 won't fit into a short."

Afficher de l'information

  • Total des messages de ce sujet: 5 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 145 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC