Tu peux voir ici que ~ est également un caractère spécial pour le shell, si tu avais ce caractère dans un nom de fichier il faudrait également l’échapper :
(la commande touch crée un fichier vide si celui-ci n’existe pas)
stef@medusa:/tmp$ touch 't ~'
stef@medusa:/tmp$ echo t ~
t /home/stef
stef@medusa:/tmp$ echo t\ \~
t ~
stef@medusa:/tmp$ echo 't ~'
t ~
stef@medusa:/tmp$ rm t ~
rm: impossible de supprimer « t »: Aucun fichier ou dossier de ce type
rm: impossible de supprimer « /home/stef »: est un dossier
stef@medusa:/tmp$ rm 't ~'
stef@medusa:/tmp$
Tu peux voir avec la première commande rm qu’il essaye de supprimer un fichier nommé 't' et un fichier nommé '/home/stef', d’une part parce que l’espace n’est pas échappée, donc il pense que ce sont deux fichiers distincts, d’autre part il interprète le '~' en le transformant en '/home/stef'...
Avec les guillemets (ou bien les anti-slashes : t\ \~ pas de problème, le shell comprend qu’on lui indique un seul fichier, nommé 't ~'.
Bon... en vrai $ echo t\ ~ devrait fonctionner aussi mais bon là ça va compliquer :)
[^] # Re: mdr recolu
Posté par Marotte ⛧ . En réponse au message {debutant] commande MV mv. Évalué à 2. Dernière modification le 20 octobre 2016 à 17:27.
~vaut la valeur de la variable $HOME de ton profile :Tu peux voir ici que
~est également un caractère spécial pour le shell, si tu avais ce caractère dans un nom de fichier il faudrait également l’échapper :(la commande touch crée un fichier vide si celui-ci n’existe pas)
Tu peux voir avec la première commande rm qu’il essaye de supprimer un fichier nommé 't' et un fichier nommé '/home/stef', d’une part parce que l’espace n’est pas échappée, donc il pense que ce sont deux fichiers distincts, d’autre part il interprète le '~' en le transformant en '/home/stef'...
Avec les guillemets (ou bien les anti-slashes :
t\ \~pas de problème, le shell comprend qu’on lui indique un seul fichier, nommé 't ~'.Bon... en vrai
$ echo t\ ~devrait fonctionner aussi mais bon là ça va compliquer :)