资讯详情

Linux文件和目录管理(3)

Linux cd命令:切换目录

Linux pwd命令:显示当前路径

Linux ls命令:查看目录下的文件

Linux mkdir命令:创建目录(文件夹)

Linux rmdir命令:删除空目录


Linux cd命令:切换目录

cd命令(change Directory) 切换工作目录

Linux根据来源,命令可以分为两种,即Shell内置命令和外部命令。所谓Shell内置命令,就是Shell这些命令没有执行文件;外部命令由程序员单独开发,因此将有执行文件。Linux中的绝大多数命令都是外部命令,而cd命令是典型的Shell因此,内置命令cd该命令没有执行文件的路径。

[root@localhost ~]# cd [相对路径或绝对路径]

除此之外,cd命令后面可以用一些特殊的符号来表达固定的含义

[root@localhost ~]# cd ~ #表示回到主目录,对root用户的主目录是/root [root@localhost ~]# cd #没有路径,也代表返回当前登录用户的主目录 [root@localhost ~]# cd ~Fancy #代表切换Fancy该用户的主目录,即/home/Fancy
[root@localhost ~]# cd .. #表示切换到当前上一级目录,即/root上一级目录的含义

需要注意的是,Linux根目录确实存在于系统中.(目录)和..(目前目录的父目录)有两个目录,但因为根目录是顶级目录,所以根目录..和.属性和权限完全一致,即根目录的父目录是自己的。

[root@localhost ~]# cd -  #表示回到刚才的目录

其实在 [root@localhost ~] 目前的目录已经指了目前的目录,通常在第一次登录时就位于自己的主目录中, ~ 它表示主目录,因此通过使用它 cd ~ 可以回到自己的主目录。

Linux pwd命令:显示当前路径

由于Linux当用户执行一个目录时,文件系统中有许多目录Linux命令又没有指定该命令或参数所在的目录时,Linux该系统将首先在当前目录(当前工作目录)中搜索该命令或其参数。因此,用户通常需要在执行命令之前确定当前的工作目录,即当前的目录。

当用户登录Linux系统结束后,其当前目录是其主要目录。pwd显示当前目录的绝对路径。

pwd命令,Print Working Directory(打印工作目录)的缩写功能是显示用户当前的工作目录。

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

whoami命令用于确定当前登录的用户,root用户目前的目录是其主目录/root。

Linux ls命令:查看目录下文件

ls 命令,list 缩写是最常见的目录操作命令,其主要功能是显示当前目录的内容。

[root@localhost ~]# ls [选项] 目录名称
选项 功能
-a 显示全部的文件,包括隐藏文件(开头为 . 文件)也一起列出,这是最常用的选项之一。
-A 与隐藏文件一起显示所有文件,但不包括 . 与 .. 这两个目录。
-d 只列出目录本身,而不是列出目录中的文件数据。
-f ls 默认情况下,它将以文件的名义进行排序 -f 在不排序的情况下,选项将直接列出结果。
-F 例如,在文件或目录名后添加文件类型的指示符号,* 代表可操作文件,/ 代表目录,= 代表 socket 文件,| 代表 FIFO 文件。
-h 以易读的方式显示文件或目录的大小,如 1KB、234MB、2GB 等。
-i 显示 inode 节点信息。
-l 文件和目录信息以长格式列出。
-n 以 UID 和 GID 单独显示文件用户名和组名。
-r 将排序结果反向输出,例如,如果原始文件名由小到大,则反向为由大到小。
-R 与子目录内容一起列出,相当于显示目录下的所有文件。
-S 对文件容量而不是文件名进行排序。
-t 以时间排序,而不是序。
--color=never --color=always --color=auto never 表示颜色显示不会根据文件特性进行。 always 表示显示颜色,ls 默认采用这种方法。 auto 表示让系统根据配置判断是否给颜色。
--full-time 时间模式完整 输出(包括年、月、日、时、分)
--time={atime,ctime} 输出 access 时间或权限属性的时间(ctime),而不是内容变更时间。

当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。

[illusion@Fancy ~]$ ls -al ~
total 112
drwx------. 18 illusion illusion  4096 Jul 12 14:10 .
drwxr-xr-x.  6 root     root        60 Jul 11 16:18 ..
-rw-rw-r--.  1 illusion illusion     0 May 25 10:32 a
drwxr-xr-x.  3 root     root        93 Jun  9 15:29 abc
-rw-------.  1 illusion illusion  1980 Jul 11 16:34 .bash_history
-rw-r--r--.  1 illusion illusion    18 Aug 30  2019 .bash_logout
-rw-r--r--.  1 illusion illusion   141 Aug 30  2019 .bash_profile
-rw-r--r--.  1 illusion illusion   312 Aug 30  2019 .bashrc
drwx------. 13 illusion illusion  4096 Jun  9 10:56 .cache
-rw-rw-r--.  1 illusion illusion    11 May 25 09:59 cat
​

通过使用 -a,你会看到以 . 为开头的几个文件,以及目录文件 (.)、(..)、.gconf 等等,这些都是隐藏的目录和文件。其中,目录文件名以蓝色显示,一般文件以白色显示。

Linux 系统中,隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非必要,不要乱动!所以,不论是 Linux 还是 Windows 都可以非常简单地査看隐藏文件,只是在 Windows 中绝大多数的病毒和木马都会把自己变成隐藏文件,给用户带来了错觉,以为隐藏文件是为了不让用户发现。

drwxr-xr-x.  6 root  root  60 Jul 11 16:18 ..

ls 命令还使用了 -l 选项,因此才显示出了文件的详细信息,此选项显示的这 7 列的含义分别是:

第一列:规定了不同的用户对文件所拥有的权限,具体权限的含义将在后续章节中讲解。 ​ 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。 ​ 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。 ​ 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。 ​ 第五列:大小,默认单位是字节。 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。 ​ 第七列:文件名或目录名。

查看某个目录的详细信息

[root@Fancy ~]# ls -l /root/
total 48
-rw-r--r--. 1 root root    10 Nov 10  2021 123
-rw-------. 1 root root  1407 Jul 11 14:52 anaconda-ks.cfg
lrwxrwxrwx. 2 root root     1 Jun  1 21:19 b -> a
drwxr-xr-x. 2 root root    57 Jul 11 14:31 base
drwxr-xr-x. 3 root root    22 Nov 10  2021 beixin
-rw-r--r--. 2 root root     0 Jul 11 11:45 bols
lrwxrwxrwx. 2 root root     1 Jun  1 21:19 c -> a
-rw-r--r--. 1 root root     0 Jul 11 11:45 cangls
​

这个命令会显示目录下的内容,而不会显示这个目录本身的详细信息。如果想显示目录本身的信息,就必须加入 "-d" 选项。

[root@Fancy ~]# ls -dl /root/
dr-xr-x---. 23 root root 4096 Jul 12 14:27 /root/

"ls-l" 显示的文件大小是字节,但是我们更加习惯的是千字节用 KB 显示,兆字节用 MB 显示,而 "-h" 选项就是按照人们习惯的单位显示文件大小

[root@Fancy ~]# ls -lh
total 48K
-rw-r--r--. 1 root root   10 Nov 10  2021 123
-rw-------. 1 root root 1.4K Jul 11 14:52 anaconda-ks.cfg
lrwxrwxrwx. 2 root root    1 Jun  1 21:19 b -> a
drwxr-xr-x. 2 root root   57 Jul 11 14:31 base
drwxr-xr-x. 3 root root   22 Nov 10  2021 beixin
-rw-r--r--. 2 root root    0 Jul 11 11:45 bols
​

Linux mkdir命令:创建目录(文件夹)

mkdir 命令,是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用。

mkdir 命令的基本格式为:

[root@localhost ~]# mkdir [-mp] 目录名

-m 选项用于手动配置所创建目录的权限,而不再使用默认权限。

-p 选项递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/test 以及 /home/test/demo。

创建目录

[root@Fancy ~]# mkdir cangls
[root@Fancy ~]# ls
anaconda-ks.cfg cangls ....

建立一个名为 cangls 的目录,通过 ls 命令可以查看到这个目录已经建立。注意,我们在建立目录的时候使用的是相对路径,所以这个目录被建立到当前目录下。

使用 -p 选项递归建立目录

[root@Fancy ~]# mkdir -p lm/movie/jp/cangls
[root@Fancy ~]# ls
anaconda-ks.cfg cangls lm ...
[root@Fancy ~]# ls lm/
movie

使用 -m 选项自定义目录权限

[root@Fancy ~]# mkdir -m 711 test2
[root@Fancy ~]# ls -l
drwx--x--x. 2 root root     6 Jul 12 14:41 test2
...

默认权限(默认权限值是 755)。在创建 test2 时,使用了 -m 选项,通过设定 711 权限值来给予新的目录 drwx--x--x 的权限。

Linux rmdir命令:删除空目录

和 mkdir 命令(创建空目录)恰好相反,rmdir(remove empty directories 的缩写)命令用于删除空目录,此命令的基本格式为:

[root@localhost ~]# rmdir [-p] 目录名

-p 选项用于递归删除空目录。

[root@Fancy ~]# rmdir cangls

命令后面加目录名称即可,但命令执行成功与否,取决于要删除目录是否是空目录,因为 rmdir 命令只能删除空目录。

通过学习 mkdir 命令我们知道,使用 mkdir -p 可以实现递归建立目录,同样地,rmdir 命令可以使用 -p 选项递归删除目录。例如:

[root@Fancy ~]# rmdir -p lm/movie/jp/cangls/

注意,此方式先删除最低一层地目录(这里先删除 cangls),然后逐层删除上级目录,删除时也需要保证各级目录是空目录。

rmdir 命令的作用十分有限,因为只能刪除空目录,所以一旦目录中有内容,就会报错。例如:

[root@Fancy ~]# mkdir test
建立测试目录
[root@Fancy ~]# touch test/boduo
[root@Fancy ~]# touch test/longze
在测试目录中建立两个文件
[root@Fancy ~]# rmdir test
rmdir: failed to remove 'test': Directory not empty
删除失败 目录非空

标签: p48k5s圆形连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台