• 误删tree命令如何恢复


    误删tree命令如何恢复

    考察rpm,yum的用法

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

    [root@centos7 ~]# which tree
    /usr/bin/tree
    [root@centos7 ~]# rm -f /usr/bin/tree 
    [root@centos7 ~]# tree .
    bash: tree: command not found...
    

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

    [root@centos7 ~]# 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
    [root@centos7 ~]# 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
    

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

    [root@centos7 ~]# rpm --help
    --replacepkgs                    reinstall if the package is already present
    [root@centos7 ~]# 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已经可以使用

    [root@centos7 ~]# tree . -d
    .
    ├── Desktop
    ├── Documents
    ├── Downloads
    ├── Music
    ├── Pictures
    ├── Public
    ├── scripts
    ├── Templates
    └── Videos
    
    9 directories
    

    五、yum的话可以重新安装

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

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

    使用rmp2cpio将tree的rpm包转成cpio

    再使用cpio提取相关文件

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

    # cpio -tv表示只是查看下包里面的文件
    [root@centos7 ~]# 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拿出来
    [root@centos7 ~]# rpm2cpio /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm | cpio -idv ./usr/bin/tree./usr/bin/tree
    177 blocks
    [root@centos7 ~]# ls usr/bin/ -l
    total 64
    -rwxr-xr-x 1 root root 62768 Aug  3 09:29 tree
    # 然后将文件复制到原来的位置
    [root@centos7 ~]# cp usr/bin/tree /usr/bin/tree 
    cp: overwrite ‘/usr/bin/tree’? y
    # 照样可以使用
    [root@centos7 ~]# tree . -d
    .
    ├── Desktop
    ├── Documents
    ├── Downloads
    ├── Music
    ├── Pictures
    ├── Public
    ├── scripts
    ├── Templates
    ├── usr
    │   └── bin
    └── Videos
    
    11 directories
    
  • 相关阅读:
    Ext.FormPanel-----FieldSet的用法
    DAO层,Service层,Controller层、View层
    PageProxy分页的实现
    Layout布局(补充)
    Ext--Layout(布局)
    DirectEvents用法
    Linq的使用
    字符串注入攻击
    winform(C#)里弹出“确定”“取消”对话框
    C#的数组
  • 原文地址:https://www.cnblogs.com/uscWIFI/p/11293758.html
Copyright © 2020-2023  润新知