Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
918 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  shell : ln avec renommage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

shell : ln avec renommage

n°1306904
good time
Posté le 14-03-2012 à 12:00:02  profilanswer
 

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

mood
Publicité
Posté le 14-03-2012 à 12:00:02  profilanswer
 

n°1306919
o'gure
Modérateur
Multi grognon de B_L
Posté le 14-03-2012 à 12:58:47  profilanswer
 

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,


Message édité par o'gure le 14-03-2012 à 13:19:46
n°1306921
good time
Posté le 14-03-2012 à 13:06:54  profilanswer
 

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/

n°1306922
o'gure
Modérateur
Multi grognon de B_L
Posté le 14-03-2012 à 13:15:06  profilanswer
 

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 :
au lieu de "image 0223.jpg", j'ai "image" et "0223.jpg", d'où mon problème.


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 :


si je n'avais pas de changement de nom, je pourrais faire un simple :

 

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/* ./


Message édité par o'gure le 14-03-2012 à 13:16:41
n°1306931
good time
Posté le 14-03-2012 à 14:40:52  profilanswer
 

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...
 

n°1306932
good time
Posté le 14-03-2012 à 14:42:10  profilanswer
 

Juste pour info, je cherche à créer des liens mais seulement depuis des fichiers. Jamais de dossiers.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  shell : ln avec renommage

 

Sujets relatifs
Shell linux commande scptest de variables en shell
[SHELL][SOLARIS 8]nombre de jour entre 2 datesScript shell problème avec date
client vpn en shell se connectant à un serveur fortinetCréer un raccourci vers un shell en lancant un programme
[SHELL] Print sur N colonneJ'arrive même pas à faire marcher mon script shell de 3 lignes !
[SHELL] incrontab + scp/rsyncScript shell de renommage de fichiers et répertoires
Plus de sujets relatifs à : shell : ln avec renommage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR