Kali-Linux

刪除了 /usr/bin/touch 和 /bin/touch。現在似乎無法安裝任何東西,也無法創建任何文件?

  • September 28, 2021

在將 GNOME 更新到 3.20.2 後,我的觸摸板出現了一些問題,因此在混亂中我錯誤地刪除了 /usr/bin/touch,之後我什至變得更加愚蠢並刪除了 /bin/touch。

現在在這之後我似乎無法安裝任何程序。這是安裝程序時產生的錯誤..

user1@pqrx:~$ sudo apt-get install gir1.2-gtop-2.0
[sudo] password for user1: 

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
gir1.2-gtop-2.0
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/54.6 kB of archives.
After this operation, 104 kB of additional disk space will be used.
Selecting previously unselected package gir1.2-gtop-2.0:amd64.
(Reading database ... 351267 files and directories currently installed.)
Preparing to unpack .../gir1.2-gtop-2.0_2.34.0-1_amd64.deb ...
Unpacking gir1.2-gtop-2.0:amd64 (2.34.0-1) ...
Setting up gir1.2-gtop-2.0:amd64 (2.34.0-1) ...
sh: 1: touch: not found
update-kali-menu: error: Can't open /var/lock/kali-menu: No such file or directory
E: Problem executing scripts DPkg::Post-Invoke '[ ! -x /usr/share/kali-menu/update-kali-menu ] || /usr/share/kali-menu/update-kali-menu wait_dpkg'
E: Sub-process returned an error code

任何幫助都感激不盡。

touch包含在GNU 核心實用程序中。由於您刪除了該程序,您可以使用此命令嘗試重新安裝它:

sudo apt-get install --reinstall coreutils 

僅使用此命令重新安裝已刪除/usr/bin/touch,並/bin/touch在全新安裝的 Kali Linux 2016.1 上使用程序。

對於其他發行版,尤其是 Mint(在 17.3 Cinnamon 上測試),sudo apt-get update可能需要先執行。

通常,可以通過搜尋dpkg有問題的文件名來確定涉及哪個包,在您的情況下:

dpkg -S bin/touch

您可以通過製作一個 shell script 來解決(大多數)用途/bin/touch,並使用它來修復您的系統以重新安裝包含實際執行檔的包。

一些應用程序將用於touch設置時間戳。這在 shell 腳本中更難。

例如:

#!/bin/sh
for name in "$@"
do
   chmod +w "$name"
   printf '' >> "$name"
done

引用自:https://unix.stackexchange.com/questions/298473