J'aurais besoin d'un petit coup de mains, je début en bash. Je voudrais décompresser des fichiers se trouvant dans des répertoires

repertoire_1/fichier1.rar

seulement je reçois également des fichiers sous la forme "fichier 1.rar" un espace en plus
mon script ne fonctionne plus :
for i in ls */*.rar; do unrar x $i ./; done
UNRAR 3.93 freeware      Copyright (c) 1993-2010 Alexander Roshal

Cannot open repertoire/fichier1.rar
Aucun fichier ou dossier de ce type
No files to extract
la fonction ls me revois repertoire1/fichier 1.rar alors que je voudrais repertoire1/fichier\ 1.rar
Pourquoi faire compliqué quand on peut faire simple ? Utiliser « ls » dans une boucle for pour parcourir des fichiers, c'est mal, et on peut s'en passer :
for i in */*.rar; do unrar x "$i" ./; done
la boucle for prend en charge les motifs de noms de fichiers, qu'ils renvoient à des fichiers avec espaces dans le nom ou pas. En revanche, les références à $i dans le corps de la boucle doivent être encadrées par des guillemets, dans le cas où justement $i comporterait des espaces.
Si c'est une seule archive qui est décomposé en petit fichier, il suffit de décompresser la version .rar sans numéro normalement

(l'interface graphique fait ça très bien 🙂)
non se sont bien des fichiers compresser indépendant