• Linux文件管理


    一 Linux文件管理

    Linux中队文件管理的命令主要有:mkdir rmdir mv rm cp touch file stat等命令

    • 创建目录mkdir

     mkdir [OPTION]... DIRECTORY...
    [root@MiWiFi-R3-srv testdir]# mkdir /root/dirtest  在/root下创建一个dirtest的目录
    常用选项:
        -p 如果父目录不存在同事创建父目录
        -v 显示创建目录的纤细信息
        -m 创建目录时同时设置目录的权限
    [root@MiWiFi-R3-srv testdir]# mkdir -vpm 755 /root/dirtest/harry 当父目录不存在先创建父目录再创建子目录并设置权限为755
    mkdir: created directory ‘/root/dirtest’ 
    mkdir: created directory ‘/root/dirtest/harry’
    
    • rmdir删除目录

    rmdir [OPTION]... DIRECTORY...
    [root@MiWiFi-R3-srv testdir]# rmdir /root/dirtest/harry/ 删除一个目录
    
    • mv移动文件或给文件重命名

       mv [OPTION]... [-T] SOURCE DEST
       mv [OPTION]... SOURCE... DIRECTORY
       mv [OPTION]... -t DIRECTORY SOURCE...  
    [root@MiWiFi-R3-srv testdir]# mv /etc/fstab /root/  将/etc/fastab移动至/root
    [root@MiWiFi-R3-srv testdir]# mv testfile mytestfile 将testfile重命名为mytestfile
    
    • cp复制文件或目录

      cp [OPTION]... [-T] SOURCE DEST
      cp [OPTION]... SOURCE... DIRECTORY
      cp [OPTION]... -t DIRECTORY SOURCE...
     [root@MiWiFi-R3-srv testdir]# cp /etc/passwd /root/ 单源复制将/etc/passwd复制到/root目录下
     [root@MiWiFi-R3-srv testdir]# cp /etc/fstab /etc/profile /root/多源复制将/etc下的fstab和profile复制到root目录下
     常用选项:
        -i 交互复制,复制之前提醒用户
        -f 强制复制目标文件
        -r 递归复制目录,复制目录及目录中的文件
        -d 不复制符号链接的源文件,仅复制符号链接
        -a 保留文件或目录原有属性,进行归档
    
    • rm删除文件或目录

    rm [OPTION]... FILE...
    [root@MiWiFi-R3-srv testdir]# rm -rf /root/testdir/ 强制删除该目录以及目录中的内容
    常用选项:
           -i 交互式删除
           -r 递归删除
           -f 强制删除
    

    • stat 显示文件或文件系统状态

    [root@MiWiFi-R3-srv ~]# stat abc 显示某文件的大小,块大小访问以及修改时间等
    File: ‘abc’
    Size: 0     Blocks: 0  IO Block: 4096   regular empty file
    Device: fd00h/64768d    Inode: 4186704 Links: 1
        Access: (0644/-rw-r--r--)  Uid: (0/root)   Gid: (0/root)
    Context: unconfined_u:object_r:admin_home_t:s0
    Access: 2017-08-05 18:40:00.000000000 +0800
    Modify: 2017-08-05 18:40:00.000000000 +0800
    Change: 2017-08-05 18:47:05.289878820 +0800
    
    • touch 创建一个空文件或修改某个文件时间戳

    touch [OPTION]... FILE...
    [root@MiWiFi-R3-srv testdir]# touch /root/abc 创建一个abc的空文件
    [root@MiWiFi-R3-srv ~]# touch -a abc 仅修改access时间
    [root@MiWiFi-R3-srv ~]# touch -m abc  仅修改文件modify时间
    [root@MiWiFi-R3-srv ~]# touch -t 201708051840 abc 修改为指定的时间
    
    • file显示文件类型

    [root@MiWiFi-R3-srv ~]# file /bin/ls 查看某个文件的类型
    /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped
    

    二 Linux的命令状态返回值以及命令行展开

    在bash中可通过查看命令状态返回码来判断上一条的命令是否执行成功

    • 成功:0
    • 失败:1-255

    [root@MiWiFi-R3-srv ~]# date  输入命令
    Sat Aug  5 18:57:01 CST 2017
    [root@MiWiFi-R3-srv ~]# echo $? 通过特殊变量查看上一条命令的执行状态返回码
    0  代表成功执行
    [root@MiWiFi-R3-srv ~]# dater   输入错误命令状态返回码为127
    [root@MiWiFi-R3-srv ~]# echo $?
    127
    

    bash特性之命令展开

    • ~:自行展开为用户的家目录,或指定用户的家目录
    • {}:可承载一个以逗号分隔的路径列表,并能将其展开为多个路径

    练习 1 在/tmp 目录下创建:a_c, a_d. b_c. b_d

    [root@MiWiFi-R3-srv ~]# mkdir -v /tmp/{a,b}_{c,d}
    mkdir: created directory ‘/tmp/a_c’
    mkdir: created directory ‘/tmp/a_d’
    mkdir: created directory ‘/tmp/b_c’
    mkdir: created directory ‘/tmp/b_d’*
    

    练习2 在/tmp/mylinux目录创建如下结构

    [root@MiWiFi-R3-srv ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}}
    [root@MiWiFi-R3-srv ~]# tree /tmp/mylinux/
    /tmp/mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │   └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │   ├── bin
    │   └── sbin
    └── var
    ├── log
    ├── look
    └── run
    

    三 Linux文件的元数据

    Linux中文件的元数据包含文件的权限,时间戳,iNode,块大小,硬链接次数所属者以及所属组等等。可通过命令stat查看相信信息

    [root@MiWiFi-R3-srv ~]# stat fstab       查看文件的元数据信息
      File: ‘fstab’
      Size: 617     Blocks: 8  IO Block: 4096   regular file
    Device: fd00h/64768d    Inode: 4186700 Links: 1
    Access: (0700/-rwx------)  Uid: (0/root)   Gid: (0/root)
    Context: unconfined_u:object_r:admin_home_t:s0
    Access: 2017-08-05 18:29:25.104977052 +0800
    Modify: 2017-08-05 18:29:25.104977052 +0800
    Change: 2017-08-05 18:29:25.104977052 +0800
    [root@MiWiFi-R3-srv ~]# touch fstab  通过touch命令修改文件的时间戳
    [root@MiWiFi-R3-srv ~]# touch -a fstab  仅修改access时间
    [root@MiWiFi-R3-srv ~]# touch -m fstab  仅修改modify时间
  • 相关阅读:
    构造无限级树并深度遍历查找指定节点
    如何用python自动编写《赤壁赋》文档
    《易经》总结
    IDEA看代码必备插件Call Graph 介绍及使用方法
    chemfig化学式转换为pdf
    从wav到Ogg Opus 以及使用java解码OPUS
    使用jhipster 加速java web开发
    从Spring框架看设计模式如何灵活使用
    提升NginxTLS/SSL HTTPS 性能的7条优化建议
    高效团队的gitlab flow最佳实践
  • 原文地址:https://www.cnblogs.com/harryblog/p/8087838.html
Copyright © 2020-2023  润新知