加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

误删tree命令如何恢复

发布时间:2020-12-16 01:54:48 所属栏目:安全 来源:网络整理
导读:误删tree命令如何恢复 考察rpm,yum的用法 一、删除tree命令,tree命令不可用 [[email?protected] ~]# which tree/usr/bin/tree[[email?protected] ~]# rm -f /usr/bin/tree [[email?protected] ~]# tree .bash: tree: command not found... 二、直接yum或rpm

误删tree命令如何恢复

考察rpm,yum的用法

一、删除tree命令,tree命令不可用

[[email?protected] ~]# which tree
/usr/bin/tree
[[email?protected] ~]# rm -f /usr/bin/tree 
[[email?protected] ~]# tree .
bash: tree: command not found...

二、直接yum或rpm安装将提示tree已经安装

[[email?protected] ~]# yum install tree
Loaded plugins: fastestmirror,langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
base                                                                         | 3.6 kB  00:00:00     
extras                                                                       | 3.4 kB  00:00:00     
nginx                                                                        | 2.9 kB  00:00:00     
updates                                                                      | 3.4 kB  00:00:00     
Package tree-1.6.0-10.el7.x86_64 already installed and latest version
Nothing to do
[[email?protected] ~]# rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
    package tree-1.6.0-10.el7.x86_64 is already installed

三、解决办法:强制覆盖安装

[[email?protected] ~]# rpm --help
--replacepkgs                    reinstall if the package is already present
[[email?protected] ~]# rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm --replacepkgs
Preparing...                          ################################# [100%]
Updating / installing...
   1:tree-1.6.0-10.el7                ################################# [100%]

四、此时的tree已经可以使用

[[email?protected] ~]# tree . -d
.
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── Public
├── scripts
├── Templates
└── Videos

9 directories

五、yum的话可以重新安装

[[email?protected] ~]# yum --help
reinstall      reinstall a package
[[email?protected] ~]# rm -f /usr/bin/tree 
[[email?protected] ~]# tree -d .
-bash: /usr/bin/tree: No such file or directory
[[email?protected] ~]# yum reinstall tree -y
[[email?protected] ~]# tree -d .
.
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── Public
├── scripts
├── Templates
└── Videos

9 directories

六、如果知道自己缺的文件,可以只修复指定文件

使用rmp2cpio将tree的rpm包转成cpio

再使用cpio提取相关文件

缺陷:仅仅是复制过去了,有可能属性都不对,复杂的包也不适用,最好不采用此法

# cpio -tv表示只是查看下包里面的文件
[[email?protected] ~]# rpm2cpio /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm | cpio -tv
-rwxr-xr-x   1 root     root        62768 Jun 10  2014 ./usr/bin/tree
drwxr-xr-x   2 root     root            0 Jun 10  2014 ./usr/share/doc/tree-1.6.0
-rw-r--r--   1 root     root        18009 Aug 13  2004 ./usr/share/doc/tree-1.6.0/LICENSE
-rw-r--r--   1 root     root         4628 Jun 24  2011 ./usr/share/doc/tree-1.6.0/README
-rw-r--r--   1 root     root         4100 Jun 24  2011 ./usr/share/man/man1/tree.1.gz
# 使用cpio -idv将/usr/bin/tree拿出来
[[email?protected] ~]# rpm2cpio /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm | cpio -idv ./usr/bin/tree./usr/bin/tree
177 blocks
[[email?protected] ~]# ls usr/bin/ -l
total 64
-rwxr-xr-x 1 root root 62768 Aug  3 09:29 tree
# 然后将文件复制到原来的位置
[[email?protected] ~]# cp usr/bin/tree /usr/bin/tree 
cp: overwrite ‘/usr/bin/tree’? y
# 照样可以使用
[[email?protected] ~]# tree . -d
.
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── Public
├── scripts
├── Templates
├── usr
│?? └── bin
└── Videos

11 directories

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读