Linux 文件与目录管理详解

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

《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 文件内容查看

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 命令的理解以及操作😆。

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

    原文作者:stone呀
    原文地址: https://www.jianshu.com/p/05ea9333c0c9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞