shell : ln avec renommage - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 14-03-2012 à 12:58:47
man ln
Citation : ln [OPTION]... [-T] TARGET LINK_NAME (1st form) |
Si tu as beaucoup de fichier, fais une boucle for en bash
pour le ln, tu mets des " " autour de ta variable si elle est succeptible de contenir des espace,
Marsh Posté le 14-03-2012 à 13:06:54
Je connais la commande "ln" que je dois utiliser, mais je n'arrive pas à faire une boucle avec le changement de nom, notamment quand les fichiers ont des espaces: la boucle me découpe chaque segment :
au lieu de "image 0223.jpg", j'ai "image" et "0223.jpg", d'où mon problème.
si je n'avais pas de changement de nom, je pourrais faire un simple :
ln * mondossier/
Marsh Posté le 14-03-2012 à 13:15:06
good time a écrit : Je connais la commande "ln" que je dois utiliser, mais je n'arrive pas à faire une boucle avec le changement de nom, notamment quand les fichiers ont des espaces: la boucle me découpe chaque segment : |
Donne nous ta boucle qu'on la corrige
As tu essayé avec des guillemets comme je l'ai indiqué dans mon précédent post.
good time a écrit :
ln * mondossier/ |
même sans changement de nom, chez moi cela ne marche pas.
Les liens créés ne sont pas bon.
Par contre en allant dans le répertoire cible et en indiquant le bon path des fichiers, ça fonctionne
ln -s repertoiredesfichiers/* ./
Marsh Posté le 14-03-2012 à 14:40:52
Au départ j'étais parti sur cette commande :
for i in *; do ln $i ${i/old_name/new_name} ; done
Il y avait 2 problème avec cette commande : les espaces ne sont pas gérer, et je ne veux pas remplacer une partie du texte par une autre, mais ajouter au début.
Je suis ensuite partie sur cette commande :
ls 1 . | awk '{print "ln "$1" texte_à_ajouter_"$1}' | sh
cette commande me rajoute donc du texte au début, c'est parfait, mais elle ne marche toujours pas si un fichier a un espace...
Marsh Posté le 14-03-2012 à 14:42:10
Juste pour info, je cherche à créer des liens mais seulement depuis des fichiers. Jamais de dossiers.
Marsh Posté le 14-03-2012 à 12:00:02
Bonjour,
je cherche à faire un "ln" tout en changeant le nom du fichier de sortie.
Dans mon cas j'ai un dossier avec une centaine de fichier, et je souhaite faire un lien (ln) de chaque fichier dans un autre répertoire, et ajouter en même temps une chaine de caractère au début du nom du lien ainsi créé.
par exemple, le fichier "image 0223.jpg" deviendrait "Liste1 - image 0223.jpg"
J'arrive à faire le "ln", c'est pas trop compliqué mais je n'arrive pas à changer le nom en même temps, sachant qu'il y a parfois des espace dans mes fichiers.
Merci d'avance de votre grande aide.
Good time