/usr/share 中的图标被意外删除,如何找回?

Dar*_*ron 7 icons

好的,所以在 /usr/share/ 目录中输入“icons”,以 root 身份点击删除键,现在我的图标都不见了,所有的,图腾播放选项或桌面上的选项...... .所有这些,有什么帮助吗?

Oli*_*Oli 12

我喜欢 Bash 色情片,所以我给你写了一份礼物:

for p in `dpkg -l | awk '/^ii  [^\ ]+/ {print $2}'`; do
    if [[ $(dpkg -L $p | grep /usr/share/icons/) ]]; then
        echo $p;
    fi;
done
Run Code Online (Sandbox Code Playgroud)

这回显了所有在/usr/share/icons/. 如果这对您有用(对我有用),您可以将 echo 语句替换为:

        sudo apt-get --reinstall install $p
Run Code Online (Sandbox Code Playgroud)

它将使用大量带宽,无论您做什么,都不要中断它,但它应该会让您恢复所有打包的图标。

当然,您可以反转该逻辑,因此您可以使用以下内容:

sudo apt-get --reinstall -s install $(for p in `dpkg -l | awk '/^ii  [^\ ]+/ {print $2}'`; do if [[ $(dpkg -L $p | grep /usr/share/icons/) ]]; then echo $p; fi; done)
Run Code Online (Sandbox Code Playgroud)

-s那里意味着模拟模式。除非您删除-s,否则该命令实际上不会执行任何操作,它只会向您显示它会做什么。我可能会在你加入之前推荐它。


正如 Andrea 指出的那样dpkg -S,这一切都可以自己完成。此外,它快得多。

sudo apt-get -s --reinstall  install `dpkg -S /usr/share/icons/ | sed 's/,//g; s/\:.*$//'`
Run Code Online (Sandbox Code Playgroud)

  • 哇。里面有很多很棒的东西..我会仔细研究那个脚本的! (2认同)
  • 您可以使用 `dpkg -S /usr/share/icons/` 代替 for 循环 ;-) (2认同)

dob*_*bey 1

您将需要执行以下操作:

sudo apt-get install --reinstall $package
Run Code Online (Sandbox Code Playgroud)

对于该路径下有文件的每个包,您将需要替换$package为包名称列表。这是相当多的软件包,特别是如果您安装了任何非默认软件包。

像这样的事情对你来说可能是一个好的开始:

sudo apt-get install --reinstall aisleriot alacarte apport aptdaemon-data brasero-common \
bzr-gtk cabextract checkbox dmz-cursor-theme eog evince-common evolution-common \
file-roller gnome-accessibility-themes gnome-applets-data gnome-bluetooth \
gnome-control-center-data gnome-disk-utility gnome-icon-theme \
gnome-icon-theme-symbolic gnome-keyring gnome-mahjongg gnome-media gnome-nettool \
gnome-online-accounts gnome-panel-data gnome-power-manager gnome-session-common \
gnome-settings-daemon gnome-system-log gnome-system-tools gnome-themes-standard \
gwibber hicolor-icon-theme human-icon-theme human-theme humanity-icon-theme ibus \
jockey-common libgweather-common liblaunchpad-integration-common libpeas-common \
libreoffice-common nautilus-data network-manager-gnome onboard openjdk-7-jre \
rhythmbox-data seahorse software-center software-properties-gtk synaptic \
totem-common transmission-common ubuntu-artwork ubuntu-mono ubuntuone-client \
ubuntuone-installer unity-asset-pool update-manager update-notifier usb-creator-gtk \
xcursor-themes
Run Code Online (Sandbox Code Playgroud)