Pourquoi ça ne marche pas?
rm $(gsettings get org.gnome.desktop.background picture-uri | awk '{gsub("file://","");print $0}')
rm: cannot remove `\'/home/foggy/obrazky/wallpapers/24/Dark_Oxygen_by_Falco101.png\'': No such file or directory
Peut-être y a-t-il un caractère que rm
n'accepte pas?
Regardez attentivement et vous remarquerez qu'il a intégré des guillemets simples, que vous devrez supprimer vous-même. Je changerais le awk
en sed
:
rm $(gsettings get org.gnome.desktop.background picture-uri |
sed -e "s/'//g" -e 's,file://,,g')
(Bien qu'en fait, je regarderais exactement à quoi ressemble la sortie non modifiée de gsettings
en premier, afin de rendre quelque chose un peu plus à l'épreuve des balles.)
Il semble que vous ayez une paire supplémentaire de guillemets simples autour de votre nom de fichier qui doivent être supprimés.
Ici, j'ai un fichier nommé "bonjour":
$ ls
hello
Essayer de le supprimer avec des guillemets supplémentaires comme celui-ci:
$ rm "'hello'"
donne exactement le message d'erreur que vous voyez:
rm: cannot remove `\'hello\'': No such file or directory
les \'
avant et après le nom sont des guillemets simples que vous devez supprimer.
ÉDITER:
Dans votre cas (comme un autre répondeur l’a noté), la sortie de
gsettings get org.gnome.desktop.background picture-uri
renvoie un résultat comme:
'file:///usr/share/backgrounds/Tie_My_Boat_by_Ray_Garc%C3%ADa.jpg'
Vous voulez donc supprimer le premier 'file://
et la fin '
. Cela peut être fait correctement en utilisant sed
comme ceci (en utilisant une seule expression avec un groupe)
sed -e "s|^'file://\(.*\)'$|\1|g"
ou peut-être plus facile à lire (en utilisant deux expressions simples)
sed -e "s|^'file://||g" -e "s|'$||"
Notez s'il vous plaît:
^
correspond au début de la ligne$
correspond à la fin de la ligne.sed
pour entourer la recherche et remplacer les expressions. Normalement, vous utiliseriez /
mais dans ce cas, il est plus facile d'utiliser autre chose, donc j'utilise |
.gsettings get org.gnome.desktop.background picture-uri
renvoie un résultat comme:
'file:///usr/share/backgrounds/Tie_My_Boat_by_Ray_Garc%C3%ADa.jpg'
Ces guillemets simples à la fin sont votre perte :-)
Je suppose que vous utilisez awk pour une raison et je vous propose deux solutions simples qui suppriment les guillemets avant d'alimenter la sortie de gsettings
vers awk
:
cut -d "'" -f2
tr "'" " "
Collez-les au milieu et vous avez terminé, par exemple:
rm $ (gsettings get org.gnome.desktop.background picture-uri | `cut -d" '"-f2` | sed -e" s /' // g "-e 's, fichier: // , g') rm $ (gsettings get org.gnome.desktop.background picture-uri | `tr" '"" " `| sed -e" s/'// g "-e' s, fichier: // , g ')
Cela fonctionnerait aussi (mais pas particulièrement sûr):
eval rm $(gsettings get org.gnome.desktop.background picture-uri | awk '{gsub("file://","");print $0}')