Linux 文件与目录管理详解

作者: stone呀 | 来源:发表于2018-02-23 11:48 被阅读37次

    记录学习Linux过程中的点滴,做一个纯粹的学习者

    极简

    一、处理目录的常用命令

    接下来我们就来看几个常见的处理目录的命令吧:

    • ls:列出目录
    • cd:切换目录
    • pwd:查看当前目录
    • mkdir:创建一个新的目录
    • rmdir:删除一个空的目录
    • cp:复制文件或者目录
    • rm:移除文件或者目录
    ① ls (列出目录)

    在Linux系统当中, ls 命令可能是最常被运行的。

    • -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
    • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
    • -l :长数据串列出,包含文件的属性与权限等等数据(常用)
    • -al:将目录下的所有文件列出来(含属性与隐藏档)
    helei@ubuntu:~/work/day1$ ls -a
    .  ..  a.out  hello.c
    helei@ubuntu:~/work/day1$ ls -d
    .
    helei@ubuntu:~/work/day1$ ls -l
    total 16
    -rwxrwxr-x 1 helei helei 8600 Dec  4 17:56 a.out
    -rwxrwxrwx 1 helei helei   77 Dec  4 17:55 hello.c
    helei@ubuntu:~/work/day1$ ls -al
    total 24
    drwxrwxr-x 2 helei helei 4096 Feb  1 20:14 .
    drwxrwxr-x 7 helei helei 4096 Dec 18 07:09 ..
    -rwxrwxr-x 1 helei helei 8600 Dec  4 17:56 a.out
    -rwxrwxrwx 1 helei helei   77 Dec  4 17:55 hello.c
    
    ② pwd (显示目前所在的目录)

    pwd是Print Working Directory的缩写,也就是显示目前所在目录的命令。

    $ pwd
    /home/helei/work
    
    ③ cd (切换目录)

    cd是Change Directory的缩写,这是用来变换工作目录的命令。

    • 绝对路径切换到 day1 目录:cd work/day1
    $ cd work/day1
    ~/work/day1$ ls
    a.out  hello.c
    
    • 相对路径切换到 day1 目录:cd ./day1/
    ~/work$ cd ./day1/
    ~/work/day1$
    
    • 回到根目录:cd ~
    $ cd work/day1
    $ pwd
    /home/helei/work/day1
    $ cd ~
    $ pwd
    //回到家目录
    /home/helei
    
    • 回到上层目录:cd ..
    $ cd work/day1
    $ pwd
    /home/helei/work/day1
    $ cd ..
    $ pwd
    //回到了上层 work 目录
    /home/helei/work
    
    ④ mkdir (创建新目录)

    如果想要创建新的目录的话,那么就使用 mkdir (make directory)吧。

    helei@ubuntu:~/work$ ls
    day1  day2  day3  day4  day5
    helei@ubuntu:~/work$ mkdir day6
    helei@ubuntu:~/work$ ls
    //可以看到新建的目录 day6
    day1  day2  day3  day4  day5  day6
    

    但是如果想要创建多级目录上面的方法就行不通了,需要使用:mkdir -p 命令

    helei@ubuntu:~/work$ mkdir day7/test1/test2
    //使用 mkdir 命令创建多级目录失败
    mkdir: cannot create directory ‘day7/test1/test2’: No such file or directory
    helei@ubuntu:~/work$ mkdir -p day7/test1/test2
    helei@ubuntu:~/work$ ls
    day1  day2  day3  day4  day5  day6  day7
    helei@ubuntu:~/work$ cd day7
    helei@ubuntu:~/work/day7$ ls
    test1
    
    ⑤ rmdir (删除空的目录)
    helei@ubuntu:~/work$ rmdir day7
    //非空目录使用rmdir是不允许删除的哦
    rmdir: failed to remove 'day7': Directory not empty
    helei@ubuntu:~/work$ cd day7
    helei@ubuntu:~/work/day7$ ls
    test1
    //先将目录下文件删除
    helei@ubuntu:~/work/day7$ rmdir test1
    helei@ubuntu:~/work/day7$ ls
    helei@ubuntu:~/work/day7$ cd ..
    helei@ubuntu:~/work$ ls
    day1  day2  day3  day4  day5  day6  day7
    helei@ubuntu:~/work$ rmdir day7
    helei@ubuntu:~/work$ ls
    //可以看到删除 day7 目录成功
    day1  day2  day3  day4  day5  day6
    
    ⑥ cp (复制文件或目录)

    cp 即拷贝文件和目录。

    helei@ubuntu:~/work/day1$ ls
    a.out  hello.c
    //拷贝 hello.c 文件到 haha 中
    helei@ubuntu:~/work/day1$ cp hello.c haha
    helei@ubuntu:~/work/day1$ la
    //可以看到哈哈被创建
    a.out  haha  hello.c
    //继续查看haha文件中内容(cat命令下方有讲解)
    helei@ubuntu:~/work/day1$ cat haha
    #include <stdio.h>
    
    int main(){
        printf("hello world!");
        return 0;
    }
    
    ⑦ rm (移除文件或目录)
    • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
    • -i :互动模式,在删除前会询问使用者是否动作
    • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
    helei@ubuntu:~/work/day1$ rm -i haha
    //删除前会询问
    rm: remove regular file 'haha'? n
    helei@ubuntu:~/work/day1$ ls
    a.out  haha  hello.c
    //直接删除了
    helei@ubuntu:~/work/day1$ rm -f haha
    helei@ubuntu:~/work/day1$ ls
    a.out  hello.c
    //创建二级目录
    helei@ubuntu:~/work/day1$ rm -r test1/test2
    helei@ubuntu:~/work/day1$ ls
    a.out  hello.c  test1
    //遍历删除
    helei@ubuntu:~/work/day1$ rm -r test1
    helei@ubuntu:~/work/day1$ ls
    a.out  hello.c
    
    ⑧ mv (移动文件与目录,或修改名称)
    //创建目录 human
    helei@ubuntu:~/work/day1$ mkdir human
    helei@ubuntu:~/work/day1$ ls
    a.out  girl  hello.c  human
    //将 girl 文件移动到 human 目录
    helei@ubuntu:~/work/day1$ mv girl human
    helei@ubuntu:~/work/day1$ ls
    a.out  hello.c  human
    helei@ubuntu:~/work/day1$ cd human
    helei@ubuntu:~/work/day1/human$ ls
    girl
    //将 girl  文件重命名为 boy
    helei@ubuntu:~/work/day1/human$ mv girl boy
    helei@ubuntu:~/work/day1/human$ ls
    boy
    

    当然也可以将文件移动到任何目录,只要你的路径正确

    //将 boy 文件移动到上级目录
    helei@ubuntu:~/work/day1/human$ mv boy ../
    helei@ubuntu:~/work/day1/human$ ls
    helei@ubuntu:~/work/day1/human$ cd ..
    helei@ubuntu:~/work/day1$ ls
    //可以看到 day1 目录下存在了 boy
    a.out  boy  hello.c  human
    //继续操作将 boy 文件移动到 work/day2 目录中
    helei@ubuntu:~/work/day1$ mv boy ../day2
    helei@ubuntu:~/work/day1$ ls
    //day1 目录下已经不存在 boy 文件了
    a.out  hello.c  human
    helei@ubuntu:~/work/day1$ cd ..
    helei@ubuntu:~/work$ cd day2
    helei@ubuntu:~/work/day2$ ls
    //可以看到 boy 文件赫然在此,😁
    boy  hello.c  hello.h  hello.o  Makefile  min.c  min.h  min.o  sum.c
    
    我的室友阿黄

    二、Linux 文件内容查看

    Linux系统中使用以下命令来查看文件的内容(这里介绍经常使用的两种):

    • cat 由第一行开始显示文件内容
    • nl 显示的时候,顺道输出行号!
    ① cat
    helei@ubuntu:~/work/day1$ cat hello.c
    //直接输出内容
    #include <stdio.h>
    
    int main(){
        printf("hello world!");
        return 0;
    }
    
    ② nl
    helei@ubuntu:~/work/day1$ nl hello.c
    //输出文件内容并显示行号
         1  #include <stdio.h>
           
         2  int main(){
         3      printf("hello world!");
         4      return 0;
         5  }
    

    看到这里的你应该是很有耐心的,真心希望能帮助你加深对 linux 命令的理解以及操作😆。

    ☺️各位客官的点赞是我最大的动力。

    相关文章

      网友评论

        本文标题:Linux 文件与目录管理详解

        本文链接:https://www.haomeiwen.com/subject/alxezxtx.html