我刪除了/bin/rm。我該如何恢復它?
只是為了好玩,我想我會在執行 Raspbian 的 Raspberry Pi 上使用這個命令:
sudo rm -f /bin/rm
我以為我可以重新安裝
coreutils
:我錯了!
apt-get install --reinstall coreutils
給出了一個錯誤dpkg
,說它無法刪除包。從原始碼編譯不起作用,因為Makefile
使用rm
.我怎樣才能得到工作
rm
回來?
sudo touch /bin/rm && sudo chmod +x /bin/rm apt-get download coreutils sudo dpkg --unpack coreutils*
而且再也不會。
你為什麼不使用 sudo 和 apt-get?
因為該
download
命令不需要它:
download
download 會將給定的二進制包下載到目前目錄。
因此,除非您在某個無法編寫的目錄中,否則您不需要使用
sudo
,並且稍後可能會出現問題,因為您需要root
刪除/移動包的權限。
busybox
在initramfs
. _
busybox
將大多數核心命令行實用程序捆綁在一個執行檔中。您可以臨時符號連結
/bin/rm
到/bin/busybox
:ln -s busybox /bin/rm
得到一個工作
rm
(之後你可以做你的apt-get install --reinstall coreutils
)。相同的方法可用於包含的所有其他實用程序
busybox
。該列表因一種部署而異。您可以使用 獲取列表busybox --list
。但請注意,它們是相應實用程序的有限版本。它們有時支持 GNU 擴展,但通常不支持,其中一些甚至不支持所有標準/POSIX 功能(某些功能可以在編譯時啟用/禁用)。
或者,您可以使用
zsh
’ 的內置 rm:#! /bin/zsh zmodload zsh/files rm "$@"
該
zsh/files
模組提供了一些額外的內置命令(rm
,mv
,ln
,mkdir
,rmdir
,chown
,chmod
,sync
)。在這種情況下或當您無法派生更多程序但確實有互動式zsh
執行時,它很有用。
ksh93
還有一些額外/可選的命令,但不在rm
其中(basename
,chmod
,dirname
,getconf
,head
,mkdir
,logname
,cat
,cmp
,cut
,uname
,wc
,sync
)。您可以通過以下方式呼叫它們:command /opt/ast/bin/the-command
在
ksh93
腳本中。