zoukankan      html  css  js  c++  java
  • 常用命令2-文件处理命令

    如果要创建一层的目录,就不用加-p,但是要创建2层目录,必须加-p

    [root@bogon ~]# mkdir test

    [root@bogon ~]# ls

    111_bak          install.log          lnmp-install.log     Templates

    anaconda-ks.cfg  install.log.syslog   Music                test

    Desktop          lnmp                 nginx-1.10.2.tar.gz  test.php

    Documents        lnmp1.0-full         Pictures             vhost.sh

    Downloads        lnmp1.0-full.tar.gz  Public               Videos

    [root@bogon ~]# mkdir yunhe/fenglaoshi

    mkdir: cannot create directory `yunhe/fenglaoshi': No such file or directory

    [root@bogon ~]# mkdir -p  yunhe/fenglaoshi

    [root@bogon ~]# ls

    111_bak          install.log          lnmp-install.log     Templates  yunhe

    anaconda-ks.cfg  install.log.syslog   Music                test

    Desktop          lnmp                 nginx-1.10.2.tar.gz  test.php

    Documents        lnmp1.0-full         Pictures             vhost.sh

    Downloads        lnmp1.0-full.tar.gz  Public               Videos

     

    [root@bogon ~]# cd yunhe/

    [root@bogon yunhe]# ls

    fenglaoshi

    [root@bogon yunhe]# pwd

    /root/yunhe

    [root@bogon yunhe]# cd fenglaoshi/

    [root@bogon fenglaoshi]# ls

    [root@bogon fenglaoshi]# cd /root/

    [root@bogon ~]#

    cd  ~  cd都是切换到家目录

    [root@bogon ~]# cd yunhe/fenglaoshi/

    [root@bogon fenglaoshi]# cd ~

    [root@bogon ~]# cd yunhe/fenglaoshi/

    [root@bogon fenglaoshi]# cd

    [root@bogon ~]# cd -

    /root/yunhe/fenglaoshi

    [root@bogon ~]# cd ../usr/local/src

    [root@bogon src]# cd ../usr/local/src

    -bash: cd: ../usr/local/src: No such file or directory

    [root@bogon src]# cd /etc/

    [root@bogon etc]# cd /etc/

    相对路径容易出错,所以建议大家都用绝对路径

    使用table键进行补全。当点击一下时候不补全,说明可能有多个,再点击一下table键。

    Table键不仅可以补全目录名,还可以补全命令名,按两下table键就匹配出来相应的目录

    [root@bogon etc]# mk

    mkdict            mkfontscale       mkfs.msdos        mkmanifest

    mkdir             mkfs              mkfs.vfat         mknod

    mkdosfs           mkfs.cramfs       mkhomedir_helper  mkrfc2734

    mkdumprd          mkfs.ext2         mkhybrid          mksock

    mke2fs            mkfs.ext3         mkinitrd          mkswap

    mkfifo            mkfs.ext4         mkisofs           mktemp

    mkfontdir         mkfs.ext4dev      mklost+found      mkxauth

    [root@bogon etc]# mk

     

     

    [root@bogon ~]# ls

    111_bak          install.log          lnmp-install.log     Templates  yunhe

    anaconda-ks.cfg  install.log.syslog   Music                test

    Desktop          lnmp                 nginx-1.10.2.tar.gz  test.php

    Documents        lnmp1.0-full         Pictures             vhost.sh

    Downloads        lnmp1.0-full.tar.gz  Public               Videos

    [root@bogon ~]# rmdir test/

    [root@bogon ~]# ls

    111_bak          install.log          lnmp-install.log     Templates

    anaconda-ks.cfg  install.log.syslog   Music                test.php

    Desktop          lnmp                 nginx-1.10.2.tar.gz  vhost.sh

    Documents        lnmp1.0-full         Pictures             Videos

    Downloads        lnmp1.0-full.tar.gz  Public               yunhe

    [root@bogon ~]# rmdir yunhe/

    rmdir: failed to remove `yunhe/': Directory not empty

    就是说使用rmdir只能删除空文件夹,如果文件夹里还有文件夹,那么使用rmdir删不掉。所以rmdir很少用。

    [root@bogon ~]# touch abc

    [root@bogon ~]# ls

    111_bak          Downloads           lnmp1.0-full.tar.gz  Public     yunhe

    abc              install.log         lnmp-install.log     Templates

    anaconda-ks.cfg  install.log.syslog  Music                test.php

    Desktop          lnmp                nginx-1.10.2.tar.gz  vhost.sh

    Documents        lnmp1.0-full        Pictures             Videos

    [root@bogon ~]# rm abc

    rm: remove regular empty file `abc'? y

    [root@bogon ~]# ls

    111_bak          install.log          lnmp-install.log     Templates

    anaconda-ks.cfg  install.log.syslog   Music                test.php

    Desktop          lnmp                 nginx-1.10.2.tar.gz  vhost.sh

    Documents        lnmp1.0-full         Pictures             Videos

    Downloads        lnmp1.0-full.tar.gz  Public               yunhe

    使用touch创建一个文件,然后当删除abc文件的时候,会提示是否删除,但是如果里面有一万个文件,你要写一万个y,所以可以使用-f选项,强制删除

    [root@bogon ~]# touch abc

    [root@bogon ~]# rm -f abc

    那删除目录怎么删除呢?要加上-r选项。-r是删除目录的,不加报错

    [root@bogon ~]# rm yunhe

    rm: cannot remove `yunhe': Is a directory

    [root@bogon ~]# rm -rf yunhe

    但是注意:rm –rf / 这条命令是删除根目录下的所有文件,千万别删,这样系统文件全没啦,系统就崩溃了。

    [root@bogon ~]# rm -rf /tmp/*

    这个相当删除tmp目录下的文件。tmp文件夹还存在。

    [root@bogon ~]# rm -rf /tmp/

    这个连tmp这个系统文件夹都删除了。

    总结:rm –rf 不管删文件或目录都能删除,所以一般都用这个来删除。

    [root@bogon ~]# cp  install.log  /tmp/aaa

    [root@bogon ~]# cd /tmp/

    [root@bogon tmp]# ls

    aaa                                    virtual-admin.g9XXs2

    gedit.root.2539503469                  virtual-admin.Lntq1h

    相当于把install.log复制到/tmp文件夹下,而且新名字叫做aaa。如果使用cp  install.log  /tmp/  则是全名复制,复制出来的名字和原来的名字一样。

    复制目录要用-r,不然不起作用。

    [root@bogon ~]# mkdir -p yunhe/feng

    [root@bogon ~]# ls

    anaconda-ks.cfg  install.log         lnmp1.0-full.tar.gz  Pictures   vhost.sh

    Desktop          install.log.syslog  lnmp-install.log     Public     Videos

    Documents        lnmp                Music                Templates  yunhe

    Downloads        lnmp1.0-full        nginx-1.10.2.tar.gz  test.php

    [root@bogon ~]# cp yunhe/ /tmp/

    cp: omitting directory `yunhe/'

    [root@bogon ~]# cp -r  yunhe/ /tmp/

    [root@bogon ~]# ls /tmp/

    aaa                                    virtual-admin.Lntq1h

    gedit.root.2539503469                  virtual-admin.nB7HlY

    virtual-admin.EVInJN                   yunhe

    ll(就是 ls -l)命令查看文件可以看到文件创建时间

    [root@bogon ~]# ll /tmp/

    total 19108

    -rw-r--r--  1 root  root     37216 Jan 10 16:58 aaa

    注意:cp -r  yunhe/ /tmp/ 复制文件时候,两个文件时间是不一样的。如果想复制的文件时间也一样,用cp -a  yunhe/ /tmp/ 包括一些隐藏属性都一弄一样。

    使用mv yunhe/ /tmp/yunhe1将yunhe目录和子文件都剪切到tmp文件夹下,而且重命名为yunhe1

    [root@bogon ~]# ll

    drwxr-xr-x   3 root root      4096 Jan 10 17:58 yunhe

    -rw-r--r--.  1 root root     37216 Dec 28 00:57 install.log

    [root@bogon ~]# mv yunhe/ /tmp/yunhe1

    [root@bogon ~]# ll

    -rw-r--r--.  1 root root     37216 Dec 28 00:57 install.log

    [root@bogon ~]# ls /tmp/

    virtual-admin.g9XXs2                   yunhe1

    改名,在当前文件夹里改当前文件夹里的文件:mv yunhe yunhedata

    [root@bogon tmp]# ls

      yunhe

    [root@bogon tmp]# mv yunhe yunhedata

    [root@bogon tmp]# ls

      yunhedata

    注意:如何目标文件和源文件在同一个文件夹下就是改名,如果目标文件和源文件在不同一个文件夹下就是剪切

     

     

    bin文件夹里的命令是所有用户都能执行的命令。但是sbin里的命令,只有root超级管理用户才能执行的命令。

     boot 目录是启动目录,如果这个目录写满了,系统会启动不起来。

    etc 目录是系统的默认配置文件保存目录

    home目录是普通用户目录,root是超级用户目录

    lib目录是linux的函数库文件保存位置

    media  mnt 是空目录。可以后期讲的挂载光盘来使用。

     

     

     

     

     

     

    删了任意一个文件,不影响另一个文件。

    硬链接相当于一个文件的2个不同接入点。当修改了一个文件,则另一个文件也跟着修改。

    [root@bogon ~]# touch test.html

    [root@bogon ~]# ls

    test.html

    [root@bogon ~]# ln /root/test.html /tmp/test_hard.html

    [root@bogon ~]# ls /tmp/

       test_hard.html          

    [root@bogon ~]# vi /root/test.html

    123~

    ~

    "test.html" 1L, 4C written

    [root@bogon ~]# vi /tmp/test_hard.html

    123

    "/tmp/test_hard.html" 1L, 4C

    就算是删了其中一个文件,另一个文件也能正常使用。

    [root@bogon ~]# rm -rf test.html

    [root@bogon ~]# vi /tmp/test_hard.html

    123

    推荐使用软连接

    删了sbcsb不能使用。一旦删除了源文件,则软连接不能用。删了软连接,源文件能使用。修改软连接,源文件跟着改;修改源文件,软连接跟着改。硬链接和源文件的id号一样,软连接和源文件id号不一样。

    [root@bogon ~]# touch feng.html

    [root@bogon ~]# ln /root/feng.html /tmp/feng_hard.html

    [root@bogon ~]# ln -s  /root/feng.html /tmp/feng_soft.html

     [root@bogon ~]# ll -i

    280546 -rw-r--r--   2 root root         0 Jan 10 20:02 feng.html

    [root@bogon ~]# ll -i /tmp/

    280546 -rw-r--r--  2 root  root         0 Jan 10 20:02 feng_hard.html

    659649 lrwxrwxrwx  1 root  root        15 Jan 10 20:03 feng_soft.html -> /root/feng.html

    无论改源文件还是软连接还是硬链接,文件保持一致。

    [root@bogon ~]# echo 1111 >> /root/feng.html

    [root@bogon ~]# cat /tmp/feng_hard.html

    1111

    [root@bogon ~]# cat /tmp/feng_soft.html

    1111

    [root@bogon ~]# echo 2222  >> /tmp/feng_hard.html

    [root@bogon ~]# cat /tmp/feng_hard.html

    1111

    2222

    [root@bogon ~]# cat /tmp/feng_soft.html

    1111

    2222

    [root@bogon ~]# echo 3333  >> /tmp/feng_soft.html

    [root@bogon ~]# cat /tmp/feng_hard.html

    1111

    2222

    3333

    [root@bogon ~]# cat /tmp/feng_soft.html

    1111

    2222

    3333

    当删除源文件,硬链接没影响,但是软连接找不到源文件。

    [root@bogon ~]# cat /tmp/feng_hard.html

    1111

    2222

    3333

    [root@bogon ~]# cat /tmp/feng_soft.html

    cat: /tmp/feng_soft.html: No such file or directory

    注:做软连接一定要写绝对路径

  • 相关阅读:
    阿里云容器服务多项重磅发布:高效智能、安全无界的新一代平台
    400倍加速, PolarDB HTAP实时数据分析技术解密
    先行一步,7大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了
    一图看懂云栖大会「云原生」重磅发布
    云栖发布|企业级互联网架构全新升级 ,助力数字创新
    3000份限量款云小宝手办全网首发,等你带回家!
    基于Delta lake、Hudi格式的湖仓一体方案
    git的clone和github的fork
    对vue的solt的理解
    对云信SDK的研究1
  • 原文地址:https://www.cnblogs.com/tolearnpy/p/11453554.html
Copyright © 2011-2022 走看看