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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [SH] traiter un nom de fichier qui contient un espace

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SH] traiter un nom de fichier qui contient un espace

n°851782
mv1
Posté le 15-10-2006 à 11:09:15  profilanswer
 

Bonjour,
 
voici un bout de shell script:

for i in `find`
do
  tar -u fichier.tar $i
done


Mon problème est que certains fichiers trouvés par mon find contiennent des espaces, et sont donc scindés par le for ...
 
J'ai alors tenté un truc du genre :

for i in `find | tr "\ " "\\\ "`
do
  tar -u fichier.tar $i
done


Ou encore :

find | awk '{tar -u fichier.tar $0}'


Pas de solution trouvée pour le moment ...  :cry:  
Si une bonne âme pouvait me guider ....  :jap:  
 
MERCI bien d'avance
- mv1 -

mood
Publicité
Posté le 15-10-2006 à 11:09:15  profilanswer
 

n°851789
Mjules
Modérateur
Parle dans le vide
Posté le 15-10-2006 à 11:30:51  profilanswer
 

find . -exec tar uf test.tar {} \;


 
non ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°851800
mv1
Posté le 15-10-2006 à 12:15:49  profilanswer
 

Malheureusement, le nombre de fichiers est très important (milliers de fichiers trouvés), et le tar n'est pas capable d'accepter autant d'arguments en une seule fois.
 
C'est pour ça que je cherche un moyen de "tarer" fichier par fichier.

n°851807
enfoiro
a nickname is just a nickname
Posté le 15-10-2006 à 13:00:54  profilanswer
 

mv1 a écrit :

Malheureusement, le nombre de fichiers est très important (milliers de fichiers trouvés), et le tar n'est pas capable d'accepter autant d'arguments en une seule fois.
 
C'est pour ça que je cherche un moyen de "tarer" fichier par fichier.


 
ce que je fais dans ce cas la je crée un fichier dans lequel je met le résultat de la recherche, et ensuite tu lis ce fichier ligne par ligne avec tar dans ton script.

n°851811
jackseg198​0
Posté le 15-10-2006 à 13:04:38  profilanswer
 

Perso j'avait fait un petit script qui enlève les espaces des répertoires et fichiers.
C'est un peu bourrin, mais bon...

n°851886
mv1
Posté le 15-10-2006 à 16:57:33  profilanswer
 

enfoiro a écrit :

ce que je fais dans ce cas la je crée un fichier dans lequel je met le résultat de la recherche, et ensuite tu lis ce fichier ligne par ligne avec tar dans ton script.


 
Tu lirais ton fichier avec un awk, un grep ou autre chose ?
 
Merci !!

n°851894
mv1
Posté le 15-10-2006 à 17:25:20  profilanswer
 


 
Malheureusement, "chez moi" si le find me trouve un fichier qui s'appelle par exemple "mon fichier.xxx", mon $i vaut "mon" puis "fichier.xxx" au tour de boucle suivant, donc un coup la commande est `tar -u fichier.tar "mon"` puis `tar -u fichier.tar "fichier.xxx"` ...

n°851897
mv1
Posté le 15-10-2006 à 17:30:11  profilanswer
 

jackseg1980 a écrit :

Perso j'avait fait un petit script qui enlève les espaces des répertoires et fichiers.
C'est un peu bourrin, mais bon...


 
C'est une bonne idée, mais je dois absoluement conserver les noms de chaque fichier comme à l'origine.


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

  [SH] traiter un nom de fichier qui contient un espace

 

Sujets relatifs
fonction du gestionnaire de fichierproblème transfert de fichier [ubuntu]
Script et fichierdebian configurer le fichier sources.list
appel d'un fichier de parametre dans un scriptcomment sauver un fichier avi ??
script de comparaison de deux fichierrecuperer fichiers effacés
espace de stockage + kixtartAdministrer un serveur de fichier samba depuis la mmc de Windows
Plus de sujets relatifs à : [SH] traiter un nom de fichier qui contient un espace


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