zoukankan      html  css  js  c++  java
  • Linux-文件目录管理

    Linux-文件目录管理

    基础命令

    命令格式
    命令  [选项]    [参数]
    
    选项:(可以有0个或多个)
        短选项:-
            多个选项可以组合: -a -b = -ab
        长选项:--
            长选项通常不能组合
            
    参数:命令的作用对象(可以有0个或多个)
    
    短选项:
    [root@localhost ~]# rm -r -f *				
    [root@localhost ~]# rm -rf *				//两种意思相同
    长选项:
    [root@localhost ~]# ls --all
    .   .bash_history  .bash_profile  .cshrc
    ..  .bash_logout   .bashrc        .tcshrc
    [root@localhost ~]# ls --inode
    [root@localhost ~]# ls --inodeall
    ls: unrecognized option '--inodeall'
    Try 'ls --help' for more information.		//长选项不能组合
    

    目录管理

    ls

    列出目录内容

    [root@localhost ~]# ls
    anaconda-ks.cfg
    

    -l 长格式

    [root@localhost ~]# ls -l
    total 4
    -rw-------. 1 root root 1184 Nov 13 20:10 anaconda-ks.cfg
    

    cd 切换目录

    pwd 查看当前所在目录路径

    [root@localhost ~]# pwd
    /root
    [root@localhost ~]# cd /
    [root@localhost /]# pwd
    /
    

    mkdir

    创建目录

    -p 创建目录时若父目录不存在则自动创建

    [root@localhost ~]# mkdir a/b/c/d
    mkdir: cannot create directory ‘a/b/c/d’: No such file or directory
    [root@localhost ~]# mkdir -p a/b/c/d
    [root@localhost ~]# ls a
    b
    [root@localhost ~]# ls a/b/
    c
    [root@localhost ~]# ls a/b/c/
    d
    

    -v 显示目录创建过程

    [root@localhost ~]# mkdir -p -v a/b/c/d
    mkdir: created directory 'a'
    mkdir: created directory 'a/b'
    mkdir: created directory 'a/b/c'
    mkdir: created directory 'a/b/c/d'
    

    创建100个纯数字目录:

    [root@localhost ~]# mkdir {1..100}
    [root@localhost ~]# ls
    1    14  2   25  30  36  41  47  52  58  63  69  74  8   85  90  96
    10   15  20  26  31  37  42  48  53  59  64  7   75  80  86  91  97
    100  16  21  27  32  38  43  49  54  6   65  70  76  81  87  92  98
    11   17  22  28  33  39  44  5   55  60  66  71  77  82  88  93  99
    12   18  23  29  34  4   45  50  56  61  67  72  78  83  89  94
    13   19  24  3   35  40  46  51  57  62  68  73  79  84  9   95
    

    tree

    查看目录树(需要先安装)

    [root@localhost ~]# mount /dev/cdrom /mnt
    mount: /mnt: WARNING: device write-protected, mounted read-only.
    [root@localhost ~]# rpm -ivh /mnt/BaseOS/Packages/tree-1.7.0-15.el8.x86_64.rpm 
    warning: /mnt/BaseOS/Packages/tree-1.7.0-15.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
    Verifying...                          ################################# [100%]
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:tree-1.7.0-15.el8                ################################# [100%]
    [root@localhost ~]# mkdir -p a/{b/{e,f},c,d/{j,k}}
    [root@localhost ~]# ls
    a  anaconda-ks.cfg
    [root@localhost ~]# tree a
    a
    ├── b
    │   ├── e
    │   └── f
    ├── c
    └── d
        ├── j
        └── k
        
    7 directories, 0 files
    

    文件管理

    touch

    创建一个空文件,touch还有一个作用是修改文件的时间戮

    [root@localhost ~]# touch a abc b
    [root@localhost ~]# ls
    a  abc  b
    

    创建100个文件:

    [root@localhost ~]# touch file{1..100}
    [root@localhost ~]# ls
    file1    file2   file30  file41  file52  file63  file74  file85  file96
    file10   file20  file31  file42  file53  file64  file75  file86  file97
    file100  file21  file32  file43  file54  file65  file76  file87  file98
    file11   file22  file33  file44  file55  file66  file77  file88  file99
    file12   file23  file34  file45  file56  file67  file78  file89
    file13   file24  file35  file46  file57  file68  file79  file9
    file14   file25  file36  file47  file58  file69  file8   file90
    file15   file26  file37  file48  file59  file7   file80  file91
    file16   file27  file38  file49  file6   file70  file81  file92
    file17   file28  file39  file5   file60  file71  file82  file93
    file18   file29  file4   file50  file61  file72  file83  file94
    file19   file3   file40  file51  file62  file73  file84  file95
    

    rm

    删除文件,删除命令默认会提示是否需要删除

    -r 递归删除,删除目录时必须使用此选项
    -f 强制删除,不询问

    [root@localhost ~]# rm -rf *			//删除所有文件
    [root@localhost ~]# ls
    
    

    cp

    复制文件,一个文件到一个文件,多个文件到一个目录

    //一个文件到一个文件:
    [root@localhost ~]# cp anaconda-ks.cfg abc
    [root@localhost ~]# ll
    total 8
    -rw-------. 1 root root 1184 Nov 14 18:14 abc
    -rw-------. 1 root root 1184 Nov 14 18:13 anaconda-ks.cfg
    
    //多个文件到一个目录:
    [root@localhost ~]# touch {1..10}
    [root@localhost ~]# mkdir 11
    [root@localhost ~]# cp {1..10} anaconda-ks.cfg 11
    [root@localhost ~]# ls 11
    1  10  2  3  4  5  6  7  8  9  anaconda-ks.cfg-r      
    

    -r 递归拷贝,拷贝目录时必须使用此选项

    [root@localhost ~]# mkdir 123
    [root@localhost ~]# cp 123 456
    cp: -r not specified; omitting directory '123'		//拷贝目录需要使用-r
    [root@localhost ~]# cp -r 123 456
    [root@localhost ~]# ll
    total 8
    drwxr-xr-x. 2 root root    6 Nov 14 18:15 123
    drwxr-xr-x. 2 root root    6 Nov 14 18:15 456
    -rw-------. 1 root root 1184 Nov 14 18:14 abc
    -rw-------. 1 root root 1184 Nov 14 18:13 anaconda-ks.cfg
    

    stat

    显示文件或文件系统的状态

    [root@localhost ~]# touch 123
    [root@localhost ~]# stat 123
      File: 123
      Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
    Device: fd00h/64768d	Inode: 101211984   Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:admin_home_t:s0
    Access: 2020-11-14 18:11:19.787085296 +0800
    Modify: 2020-11-14 18:11:19.787085296 +0800
    Change: 2020-11-14 18:11:19.787085296 +0800
     Birth: -
    

    mv

    移动文件(在同一个位置就是重命名,放到另外一个位置就是剪切)

    [root@localhost ~]# ll
    total 0
    -rw-r--r--. 1 root root 0 Nov 14 19:00 123
    [root@localhost ~]# mv 123 456
    [root@localhost ~]# ll
    total 0
    -rw-r--r--. 1 root root 0 Nov 14 19:00 456
    [root@localhost ~]# mv 456 /opt
    [root@localhost ~]# ll /opt
    total 0
    -rw-r--r--. 1 root root    0 Nov 14 19:00 456
    

    如何获取命令帮助

    //内部命令
        help COMMAND
    //外部命令
        COMMAND --help
    //在线文档
        info COMMAND    
    //命令手册  manual
        man COMMAND
    //文档
        /usr/share/doc 
        
    whatis COMMAND      //用于查看COMMAND出现在man的哪一章节中。
    
    //man是分章节的,以下是每一章节的内容介绍:
        1   用户命令(/bin,/usr/bin,/usr/local/bin);
        2   系统调用;
        3   库调用;
        4   特殊文件(设备文件);
        5   文件格式(配置文件 的语法);
        6   游戏;
        7   杂项(Miscellaneous);
        8   管理命令(/sbin,/usr/sbin,/usr/local/sbin)
        
    //man手册注意事项:
        []              //可选
        <>              //必选
        ...             //可以出现多次
        |               //多选一
        {}              //分组
        NAME            //命令名称及功能简要说明
        SYNOPSIS        //用法说明,包括可用的选项
        DESCRIPTION     //命令功能的详尽说明,可能包括每一个选项的意义
        OPTIONS         //说明每一个选项的意义
        FILES           //此命令相关的配置文件
        BUGS            //报告bug
        EXAMPLES        //使用示例
        SEE ALSO        //另外参照
        
    //man翻屏
        向后翻一屏       //SPACE
        向前翻一屏       //b
        向后翻一行       //enter
        向前翻一行       //k
        
    //查找
        /KEYWORD    //向后
        ?KEYWORD    //向前
        n           //下一个
        N           //前一个
        q           //退出    
    
  • 相关阅读:
    C++ 的那些坑 (Day 0)
    LeetCode Search a 2D Matrix II
    最大子序列和问题的解(共4种,层层推进)
    如何编译文件(gcc + nasm)
    os如何处理键盘的所有按键,显示or不显示,显示是如何显示
    汇编操作显存
    diy文件系统上创建文件的流程
    在diy的文件系统上创建文件的流程
    建立文件系统
    快速选择
  • 原文地址:https://www.cnblogs.com/yuqinghao/p/13976622.html
Copyright © 2011-2022 走看看