目录处理命令
ls
- 命令名称:ls
- 英文原意:list
- 执行权限:所有用户
- 功能:显示目录文件
- 语法:
ls 选项[-ald] [文件或目录]
- -a:显示所有文件,包括隐藏文件
- -l:详细信息显示
- -d:查看目录属性
-a
-a能显示所有文件,包括隐藏文件。隐藏文件以.
开头。
-l
1atomy@atomy-virtual-machine:~/桌面$ ls -l /
2总用量 1918440
3lrwxrwxrwx 1 root root 7 5月 6 11:48 bin -> usr/bin
4drwxr-xr-x 4 root root 4096 5月 6 12:00 boot
5drwxrwxr-x 2 root root 4096 5月 6 11:50 cdrom
6drwxr-xr-x 19 root root 4140 5月 9 09:17 dev
7drwxr-xr-x 131 root root 12288 5月 9 09:04 etc
8drwxr-xr-x 3 root root 4096 5月 6 11:51 home
9lrwxrwxrwx 1 root root 7 5月 6 11:48 lib -> usr/lib
10lrwxrwxrwx 1 root root 9 5月 6 11:48 lib32 -> usr/lib32
11lrwxrwxrwx 1 root root 9 5月 6 11:48 lib64 -> usr/lib64
12lrwxrwxrwx 1 root root 10 5月 6 11:48 libx32 -> usr/libx32
13drwx------ 2 root root 16384 5月 6 11:47 lost+found
14drwxr-xr-x 3 root root 4096 5月 6 12:10 media
15drwxr-xr-x 3 root root 4096 5月 6 12:16 mnt
16drwxr-xr-x 2 root root 4096 2月 10 02:47 opt
17dr-xr-xr-x 371 root root 0 5月 9 09:17 proc
18drwx------ 4 root root 4096 5月 9 09:16 root
19drwxr-xr-x 33 root root 880 5月 9 09:17 run
20lrwxrwxrwx 1 root root 8 5月 6 11:48 sbin -> usr/sbin
21drwxr-xr-x 8 root root 4096 2月 10 02:57 snap
22drwxr-xr-x 2 root root 4096 2月 10 02:47 srv
23-rw------- 1 root root 1964400640 5月 6 11:48 swapfile
24dr-xr-xr-x 13 root root 0 5月 9 09:17 sys
25drwxrwxrwt 21 root root 4096 5月 9 09:18 tmp
26drwxr-xr-x 14 root root 4096 2月 10 02:48 usr
27drwxr-xr-x 14 root root 4096 2月 10 02:56 var
这是使用-l查看根目录下文件的信息。第一行是总计(total),Total后面的数字是指当前目录下所有文件所占用的空间总和。可以使用ls –lh
查看,也可使用ls –alh
查看。
我们以home文件的信息为例分析各个字段
1drwxr-xr-x 3 root root 4096 5月 6 11:51 home
第一部分:文件属性字段
文件属性字段总共有10个字符组成
第一个字符表示文件类型
- -:二进制文件
- d:目录
- l:软链接文件
之后每三个字符为一组,第一组表示u,即所有者;第二组表示g,即所属组;第三组表示o,即其他人
他们的权限有三种表示:r、w、x
- r:读
- w:写
- x:执行
如rwx
表示这个文件可读可写可执行,r--
表示这个文件只可以读,不可以写也不可以执行,-
用来表示没有这个权限。
因此drwxr-xr-x
的含义就是表示这是一个目录,所有者(即root)拥有读、写、执行的权限,所属组拥有读和执行的权限,但没有写的权限,其他人拥有读和执行的权限,但没有写的权限。
第二部分:目录/链接个数
文件硬链接数或目录子目录数
如果一个文件不是目录那么这一字段表示,这个文件所具有的硬链接数,即这个文件总共有多少个文件名.
1-rw-r--r-- 1 root root 1581 11月 24 18:14 anaconda-ks.cfg
2第2字段的值为1,说明这个文件只有anaconda-ks.cfg这一个文件名.即只有一个指向该链接的硬链接.可以使用
ls -i
来查看文件的硬链接数。如果是一个目录,则第2字段表示该目录所含子目录的个数。
第三部分:文件拥有者
该字段表示这个文件是属于哪个用户的
**第四部分:文件拥有者所在的组 **
一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第4字段的名称。
第五部分:文件大小
- 如果是文件,则表示该文件的大小,单位为字节。
- 如果是目录,则表示该目录符所占的大小,并不表示该目录下所有文件的大小。请注意是文件夹本身的大小,而不是文件夹以及它下面的文件的总大小。
如果想要看到具象的文件大小,可以用ls -lh
,这样会附带上文件大小的单位。
1atomy@atomy-virtual-machine:~/桌面$ ls -lh /home
2总用量 4.0K
3drwxr-xr-x 14 atomy atomy 4.0K 5月 6 15:01 atomy
第六部分:文件创建月份
第七部分:文件创建日期
第八部分:文件创建时间
第九部分:文件名
-d
如果想看一个文件夹的信息,要加上-d
,否则会显示这个文件夹下的文件信息
1ls -ld /etc
一般情况下,-d会和-l一起使用。
mkdir
命令名称:mkdir
英文原意:make directories
执行权限:所有用户
功能描述:创建新目录
语法
1mkdir -p [目录名]
-
-p:递归创建
递归创建就是一个目录本身不存在,就会先创建这个目录,如下:
1mkdir /tmp/test/test01
2
3tmp下是没有test文件夹的,所以会提示创建失败要用如下方法:
4
5mkdir -p /tmp/test/test01
-
同时创建多个目录(已经创建了test)
<br />mkdir /tmp/test/test01 /tmp/test/test02 /tmp/test/test03<br />
pwd
- 命令名称:pwd
- 英文原意:print working directory
- 执行权限:所有用户
- 功能描述:显示当前目录
- 语法:pwd
cd
- 命令名称:cd
- 英文原意:change directory
- 执行权限:所有用户
- 功能描述:切换目录
- 语法:cd [目录]
特殊目录:
-
.
:当前目录 -
..
:上一级目录 -
cd ..
回到上级目录
rmdir
- 命令名称:rmdir
- 英文原意:remove empty directories
- 执行权限:所有用户
- 功能描述:删除空目录
- 删除的目录不是空目录会提示失败:目录非空
- 语法:rmdir [目录名]
cp
- 命令名称:cp
- 英文原意:copy
- 执行权限:所有用户
- 功能描述:复制文件或目录
- 语法:cp -rp [源文件或目录] [目标目录]
- -r:复制目录
- -p:保留文件属性
1.如果复制的是目录,就要加上-r,如
1cp -r /tmp/test/test01 /root
上面的语句就是将test01复制到root下
2.可以同时复制多个文件
1cp /etc/gai.conf /etc/gamemode.ini /tmp具体如下:root@atomy-virtual-machine:/etc# cp /etc/gai.conf /etc/gamemode.ini /tmproot@atomy-virtual-machine:/etc# cd /tmproot@atomy-virtual-machine:/tmp# ls_cafenv-appconfig_ systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-systemd-resolved.service-9AZqDhconfig-err-7lSB6k systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-systemd-timesyncd.service-iI6Byigai.conf systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-upower.service-Emh8lhgamemode.ini tracker-extract-files.1000ssh-HsQTLczBrZ8o tracker-extract-files.125systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-colord.service-Oxys1e vmware-atomysystemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-ModemManager.service-1HeSRi VMwareDnDsystemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-switcheroo-control.service-3ISK0i vmware-rootsystemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-systemd-logind.service-3bdVEi vmware-root_1153-4013330019这两个文件也新增在tmp中了。
注意,复制过来的文件相当于创建了一个新文件,日期是变化的
etc下的文件
1-rw-r--r-- 1 root root 2584 2月 1 2020 gai.conf-rw-r--r-- 1 root root 4372 5月 18 2020 gamemode.ini
tmp下的文件
1-rw-r--r-- 1 root root 2584 5月 9 15:47 gai.conf-rw-r--r-- 1 root root 4372 5月 9 15:47 gamemode.ini
3.使用-p
来解决上面的问题
保留原来文件的属性
4.在复制的同时可以改名
1cp -r /tmp/test/test02 /tmp/testcopy将test02复制到tmp下并改名为testcopy,具体如下:root@atomy-virtual-machine:/tmp# cp -r /tmp/test/test02 /tmp/testcopyroot@atomy-virtual-machine:/tmp# ls_cafenv-appconfig_ systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-switcheroo-control.service-3ISK0i tracker-extract-files.1000config-err-7lSB6k systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-systemd-logind.service-3bdVEi tracker-extract-files.125gai.conf systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-systemd-resolved.service-9AZqDh vmware-atomygamemode.ini systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-systemd-timesyncd.service-iI6Byi VMwareDnDssh-HsQTLczBrZ8o systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-upower.service-Emh8lh vmware-rootsystemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-colord.service-Oxys1e test vmware-root_1153-4013330019systemd-private-a77e8ee0988c4b05b0e3a30c7f6f5967-ModemManager.service-1HeSRi testcopy
mv
- 命令名称:mv
- 英文原意:move
- 执行权限:所有用户
- 功能描述:剪切(移动)文件、改名
- 语法:mv [源文件或目录] [目标目录]
1root@atomy-virtual-machine:/tmp# mv /tmp/test/test03 /tmp/testcopyroot@atomy-virtual-machine:/tmp# ls /tmp/testcopytest03
可以和cp一样剪切的时候改名,也可以一次移动多个文件或目录
因此,我们使用这个命令对文件或目录重命名
1root@atomy-virtual-machine:/tmp# mv /tmp/testcopy/test03 /tmp/testcopy/test03renameroot@atomy-virtual-machine:/tmp# ls /tmp/testcopytest03rename
rm
- 命令名称:rm
- 英文原意:remove
- 执行权限:所有用户
- 功能描述:删除文件
- 语法:rm -rf [文件或目录]
- -r:删除目录
- -f:强制删除