在Linux系统中,可以说一切(包括目录、普通文件、设备文件等)皆为文件。文件类型包含有普通文件、目录、字符设备文件、块设备文件、符号链接文件、管道文件等等。
当执行ls -l 或 ls -al命令后显示的结果如下:
[root@kali data]# ls -l
total 20
drwxr-xr-x 3 root root 4096 Jul 28 2016 3306
drwxr-xr-x 3 root root 4096 Jul 28 2016 3307
-rw-r—r— 1 root root 0 Aug 15 2016 admin.txt
-rw-r—r— 1 root root 2171 Jul 17 00:53 oldboy.txt
-rw-r—r— 1 root root 1056 Jul 14 02:11 passwd
-rw-r—r— 1 root root 24 Jul 17 00:22 test.txt
在ls -l显示文件属性内容后,第一列的第一个字符串就是用来区分文件类型的:
文件类型标识符 | 文件类型说明 |
---|---|
d(directory) | 表示这是一个目录 |
-(regular file) | 表示这是一个普通的文件 |
l(link) | 表示这是一个符号链接文件,实际上它指向另一个文件 |
b(block) | 表示块设备和 其他的外围设备,是特殊类型的文件 |
c(character) | 表示字符设备文件 |
s(socker) | 表示socket文件 |
p(named pipe) | 表示管道文件 |
1. 普通文件(regular file)
[root@kali data]# ll oldboy.txt
-rw-r—r— 1 root root 2171 Jul 17 00:53 oldboy.txt
我们通过用ls -l来查看oldboy.txt的属性,可以看到第一列内容为 -rw-r—r—,值得注意的是
第一个符号是-(因为字符减号),在Linux中,以这样的字符开头的文件就表示普通文件。
普通文件大略可以分为:
- 纯文本文件(ascll):文件内容可以直接读取到数据,例如:字母、数字等。可以用cat命令读文件,比如配置文件几乎都是这种类型的。
二进制文件(binary):在Linux中的命令程序就是属于这种格式。例如cat命令就是一个二进制文件。
3)数据格式文件(data):有些程序在运行的过程中会读取某些特定格式的文件,那些特定格
式的我文件可以被称为数据文件。例如:Linux在用户登录时,都会将登录的数据记录在
/var/log/wtmp(last命令的数据库文件)那个文件内,该文件是一个数据文件。
通过last命令读出来。cat命令读会乱码。因为它属于一种特殊格式的文件。
补充:通过file命令可以查看文件类型
[root@kali data]# file oldboy.txt
oldboy.txt: ASCII text
[root@kali data]# file /usr/bin/less
/usr/bin/less: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
2. 目录文件
创建目录的命令可以用mkdir命令或cp命令(带-r或-a参数),cp可以把一个目录复制为
另一个目录。删除目录用rm -r或rmdir(删空目录才可以)命令。
查看目录:
[root@kali ~]# ls -l /root/ |grep “^d” —color=auto
drwxr-xr-x 4 root root 4096 Jul 17 00:54 data
drwxr-xr-x 7 root root 4096 Jul 14 00:06 oldboy
3. 块设备文件
查看块设备文件:
[root@kali ~]# find /dev/ -type b|xargs ls -l
brw-rw—— 1 root disk 7, 0 Jul 16 20:16 /dev/loop0
brw-rw—— 1 root disk 7, 1 Jul 16 20:16 /dev/loop1
brw-rw—— 1 root disk 7, 2 Jul 16 20:16 /dev/loop2
brw-rw—— 1 root disk 7, 3 Jul 16 20:16 /dev/loop3
brw-rw—— 1 root disk 7, 4 Jul 16 20:16 /dev/loop4
brw-rw—— 1 root disk 7, 5 Jul 16 20:16 /dev/loop5
brw-rw—— 1 root disk 7, 6 Jul 16 20:16 /dev/loop6
brw-rw—— 1 root disk 7, 7 Jul 16 20:16 /dev/loop7
brw-rw—— 1 root disk 1, 0 Jul 16 20:16 /dev/ram0