Re: transfert de fichiers avec des caractères bizarres
- To: debian-user-french@lists.debian.org
- Subject: Re: transfert de fichiers avec des caractères bizarres
- From: Francois Cerbelle <francois@cerbelle.net>
- Date: 06 Aug 2011 11:28:02 GMT
- Message-id: <4e3d2542$0$25459$426a74cc@news.free.fr>
- References: <4e3c48f7$0$15051$426a74cc@news.free.fr>
Salut,
Le Fri, 05 Aug 2011 22:10:01 +0200, moi-meme a écrit :
[...]
> Je transfère par curlftpfs. Marche très bien. Sauf pour des fichiers
> avec des caractères bizarres style "?","'", espace et autres.
> C'est pas autorisé dans les noms mais j'ai récupéré les fichiers comme
> ça. Avec un cp et ça foire lamentablement mais avec mc aucun problème.
> Comment il fait cet artiste ?
Ce n'est pas ni ton NAS, ni le système qui est en cause, mais le fait que
tu ne protèges pas les fameux caractères spéciaux. S'ils ne sont pas
protégés, ils sont interprétés par ton shell. Ainsi, si tu utilises :
cp truc?abc.ext /NAS
ou
cp "truc?abc.ext" /NAS
Ton shell va modifier (interpréter) les fameux caractères avant de
transmettre les arguments a cp. Les ? seront remplacés par un caractère
qui permette de trouver un fichier dont le nom corresponde, les ' vont
être interprétés comme une ouverture de chaine de caractere à ne pas
interpréter et les espaces ne seront pas changés, mais seront interprétés
par cp comm un séparateur de fichiers...
Pour les espaces, il te suffit d'utiliser les doubles quotes ", qui vont
forcer tous les morceaux autour des espaces à ne faire qu'un avec les
espace, mais, pour être totalement générique dans ton cas, il vaut mieux
que tu encapsules tous tes noms de fichiers dans des apostrophes '.
Ainsi, les espaces ne seront pas considérés comme des séparateurs, les ?
ne seront pas interprétés, ... Les deux seuls inconvénients de cette
syntaxe sont :
- tu dois protéger les apostrophes à l'intérieur de tes noms de fichiers
pour qu'elles ne soient pas considérées comme une fin de chaine, tu
remplaces tous les ' par des \'
- tu ne peux plus utiliser de substitution shell dans les noms de
fichiers ($VARIABLE, par exemple).
donc, si tu tentes de copier le fichier
a b'c?.ext
tu peux utiliser :
cp 'a b\'c?.ext' /nas
protège aussi, si tu en as, les points d'exclamation qui ne sont pas
protégés par les apostrophes.
> Je ne vais quand même pas tout copier avec mc. Une autre solution :
> renommer avec un : tr "?' " "___" dans un script.
tu devrais regarder du côté de la commande «rename»
A+
--
Francois
Reply to: