1) Если libfoo является зависимостью, то apt-get install libfoo установит только версию, совместимую с другим приложением, используя ее.
2) Если вы удалите панель, а другое приложение не использует libfoo, будет удаляться с помощью apt-get autoremove.
Посмотрите внимательно, и вы заметите, что в нем встроены одинарные кавычки, которые вам придется удалить самостоятельно. Я бы сменил awk на sed:
rm $(gsettings get org.gnome.desktop.background picture-uri |
sed -e "s/'//g" -e 's,file://,,g')
(хотя на самом деле я хотел бы посмотреть, что именно немодифицированный вывод gsettings выглядит как первый, чтобы что-то сделать более пуленепробиваемый.)
Похоже, у вас есть дополнительная пара одиночных кавычек вокруг вашего имени файла, которые нужно удалить.
Здесь у меня есть файл с именем «hello»:
$ ls
hello
Попытка удалить его с помощью дополнительных одинарных кавычек, таких как:
$ rm "'hello'"
дает точно сообщение об ошибке:
rm: cannot remove `\'hello\'': No such file or directory
\' до и после
EDIT:
В вашем случае (как заметил еще один ответчик) вывод
gsettings get org.gnome.desktop.background picture-uri
возвращается результат:
'file:///usr/share/backgrounds/Tie_My_Boat_by_Ray_Garc%C3%ADa.jpg'
Итак, вы хотите удалить ведущие 'file:// и финал '. Это можно сделать правильно, используя sed, как это (используя только одно выражение с группой)
sed -e "s|^'file://\(.*\)'$|\1|g"
или, может быть, легче читать (используя два простых выражения)
sed -e "s|^'file://||g" -e "s|'$||"
[d10 ] Обратите внимание: ^ соответствует началу строки $ соответствует концу строки. любой символ может использоваться в sed, чтобы окружить поиск и заменить выражения. Обычно вы используете /, но в этом случае проще использовать что-то другое, поэтому я использую |. gsettings get org.gnome.desktop.background picture-uri возвращает результат, подобный:
'file:///usr/share/backgrounds/Tie_My_Boat_by_Ray_Garc%C3%ADa.jpg'
Эти одиночные кавычки на концах - это ваше уничтожение: -)
I ' Предположим, вы используете awk по какой-то причине и даете вам два простых решения, которые разделяют кавычки, прежде чем подавать вывод gsettings в awk:
cut -d "'" -f2 tr "'" " " [!d4 ]Прикрепите их посередине, и вы закончите, например:
rm $(gsettings get org.gnome.desktop.background picture-uri | `cut -d "'" -f2` | sed -e "s/'//g" -e 's,file://,,g') rm $(gsettings get org.gnome.desktop.background picture-uri | `tr "'" " "` | sed -e "s/'//g" -e 's,file://,,g')Это тоже сработает (хотя и не особенно безопасно):
eval rm $(gsettings get org.gnome.desktop.background picture-uri | awk '{gsub("file://","");print $0}')
gsettings get org.gnome.desktop.background picture-uri
возвращает результат, подобный:
'file:///usr/share/backgrounds/Tie_My_Boat_by_Ray_Garc%C3%ADa.jpg'
Эти одиночные кавычки на концах - это ваше уничтожение: -)
I ' Предположим, вы используете awk по какой-то причине и даете вам два простых решения, которые разделяют кавычки, прежде чем подавать вывод gsettings
на awk
:
cut -d "'" -f2
tr "'" " "
Прикрепите их посередине, и вы закончите, например:
rm $(gsettings get org.gnome.desktop.background picture-uri | `cut -d "'" -f2` | sed -e "s/'//g" -e 's,file://,,g') rm $(gsettings get org.gnome.desktop.background picture-uri | `tr "'" " "` | sed -e "s/'//g" -e 's,file://,,g')
Похоже, у вас есть дополнительная пара одиночных кавычек вокруг вашего имени файла, которые нужно удалить.
Здесь у меня есть файл с именем «hello»:
$ ls
hello
Попытка удалить его с помощью дополнительных одинарных кавычек, таких как:
$ rm "'hello'"
дает точно сообщение об ошибке:
rm: cannot remove `\'hello\'': No such file or directory
\'
до и после
EDIT:
В вашем случае (как заметил еще один ответчик) вывод
gsettings get org.gnome.desktop.background picture-uri
возвращается результат вроде:
'file:///usr/share/backgrounds/Tie_My_Boat_by_Ray_Garc%C3%ADa.jpg'
Итак, вы хотите удалить ведущие 'file://
и финал '
. Это можно сделать правильно, используя sed
, как это (используя только одно выражение с группой)
sed -e "s|^'file://\(.*\)'$|\1|g"
или, может быть, легче читать (используя два простых выражения)
sed -e "s|^'file://||g" -e "s|'$||"
Обратите внимание:
^
соответствует началу строки $
соответствует концу строки. sed
, чтобы окружить поиск и заменить выражения. Обычно вы используете /
, но в этом случае проще использовать что-то еще, поэтому я использую |
. '
, как было предложено, но только те, которые окружают ваше имя файла (в редком случае, когда ваше имя файла содержит одну цитату - редко, но видно).
– mgd
11 May 2012 в 20:34