1 votes

Comment échapper aux guillemets simples dans le paramètre rsync out-format sous bash ?

J'utilise bash version 3.0.9 sous Centos 7, et je n'arrive pas à trouver une combinaison d'échappement qui me permette de passer des guillemets simples au paramètre out-format. J'ai essayé toutes les combinaisons auxquelles je pense pour envelopper les options dans des guillemets simples ou doubles, en échappant les guillemets simples avec des backslashes, en concaténant des chaînes, en les passant comme variables, rien ne semble fonctionner. Apparemment, la commande ci-dessous devrait fonctionner pour me donner des tailles de fichiers lisibles par l'homme, mais je n'obtiens que les guillemets simples que vous voyez dans la sortie :

$ rsync -crthivn --out-format="%n %''l" /from_folder /to_folder
sending incremental file list
test/ %''l
test/file1 %''l
test/folders_current %''l
test/test2/ %''l
test/test2/file2 %''l

sent 191 bytes  received 29 bytes  440.00 bytes/sec

Je pensais que l'échappement de bash serait à l'origine du problème, mais j'obtiens les mêmes résultats lorsque j'essaie avec sh et csh. Je suis donc très confus maintenant ! Toute aide est la bienvenue.

1voto

Ross Hamilton Points 21

Juste pour faire le suivi, il semble que ce soit un bogue dans la version 3.0.9 - j'ai constaté que le problème disparaît après avoir mis à jour vers rsync 3.1.2 (ce que vous devez faire manuellement car vous ne pouvez obtenir que la version 3.0.9 à partir des dépôts Centos officiels).

J'ai suivi les instructions d'ici pour savoir comment le faire :

https://stackoverflow.com/questions/36407399/why-the-latest-vesion-of-rsync-could-not-be-installed-on-centos-7-2

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X