Linux 中一切皆为文件, 文件类型也有多种, 使用 ls -l 命令可以查看文件的属性, 所显示结果的第一列的第一个字符用来表明该文件的文件类型, 如下:
1, 普通文件
使用 ls -l 命令后, 第一列第一个字符为 "-" 的文件为普通文件, 如上图所示, 普通文件一般为灰色字体, 绿色字体的是可执行文件, 红色字体的是压缩文件.
文件的权限:
以普通文件为例, 使用 ls -l 命令, 可以看到结果的第一列是 -rwxrwxrwx 的形式, 其中第一个字符 "-" 表示这个文件为普通文件, 它也可以是其他的字符, 不同的字符代表不同类型的文件. 其后的一串字符表明了该文件的权限, 其中:
1)r 表明该文件具有可读权限, 若该位置为 "-" , 则表明文件不可读;
2)w 表明该文件具有写权限, 若该位置为 "-" , 则表明文件不可写;
3)x 表明该文件具有可执行权限, 若该位置为 "-" , 则表明文件不具有可执行权限;
4)第一个 rwx 表示该文件的所有者对该文件的权限; 第二个 rwx 表示该文件所属组对该文件的权限; 第三个 rwx 表示其他用户对该文件的权限.
创建一个普通文件:
可以使用 touch 命令来创建一个文件:
touch newfile
删除一个普通文件:
可以使用 rm 命令来删除一个文件:
rm newfile
2, 目录文件
Linux 中的目录也是文件, 目录文件中保存着该目录下其他文件的 inode 号 和文件名等信息, 目录文件中的每个数据项都是指向某个文件 inode 号的链接, 删除文件名就等于删除与之对应的链接. 目录文件的字体颜色是蓝色, 使用 ls -l 命令查看, 第一个字符为 "d"(directory).
目录文件的权限:
1)r 表明该目录文件具有可读权限, 即可以使用 ls 命令查看该目录的存储情况;
2)w 表明该目录文件具有写权限, 即可以往该目录下添加, 修改, 删除文件;
3)x 表明该目录文件具有可执行文件, 即可以使用 cd 命令进入到该目录下.
可以使用 chmod 指令来改变文件的权限.
创建一个目录:
可以使用 mkdir 命令来创建一个目录文件:
mkdir directory
删除一个目录:
可以使用 rmdir 命令来删除一个空目录:
rmdir directory
如果该目录下有其他文件, 则可以使用 rm -r 命令来递归删除该目录下的所有文件. 需要注意的是, 使用该命令将会删除该目录及目录下的所有数据, 过程不可逆, 需要谨慎使用:
rm -r directory
3, 链接文件
链接文件一般指的是一个文件的软连接(或符号链接), 使用 ls -l 命令查看, 第一个符号为 "l", 文件名为浅蓝色, 如下:
这里, test_softlink 就是一个链接文件, 从结果上还可以看到它是文件 test.txt 的软链接, 删除原文件 test.txt 的话, 对应的软链接文件 test_softlink 也会消失. 可以使用 ln 命令来创建一个文件的链接文件:
1)软链接
软链接(又称符号链接), 使用 ln -s file file_softlink 命令可以创建一个文件的软链接文件:
ln -s test.txt test_softlink
软链接相当于给原文件创建了一个快捷方式, 如果删除原文件, 则对应的软链接文件也会消失.
2)硬链接
硬链接, 相当于给原文件取了个别名, 其实两者是同一个文件, 删除二者中任何一个, 另一个不会消失; 对其中任何一个进行更改, 另一个的内容也会随之改变, 因为这两个本质上是同一个文件, 只是名字不同. 使用 ls -i 命令查看, 可以发现硬链接的两个文件的 inode 号是一样的:
同样的, 使用 ln 命令可以创建一个文件的硬链接:
ln test.txt test_hardlink
4, 设备文件
Linux 中的硬件设备如硬盘, 鼠标等也都被表示为文件, 即为设备文件. 设备文件一般存放在 /dev/ 目录下, 文件名为黄色, 如下:
设备文件分两种:
1)块设备文件:
块设备文件支持以块 (block) 为单位的访问方式. 在 EXT4 文件系统中, 一个 block 通常为 4KB 的大小, 也就是说每次可以存取 4096(或其整数倍) 个字节的数据. 应用程序可以随机访问块设备文件的数据, 程序可以自行确定数据的位置, 硬盘, 软盘等都是块设备. 使用 ls -l 命令查看, 块设备文件的第一个字符是 "b"(block).
2)字符设备文件:
字符设备文件以字节流的方式进行访问, 由字符设备驱动程序来实现这种特性, 这通常要用到 open,close,read,write 等系统调用. 字符终端, 串口和键盘等就是字符设备. 另外, 由于字符设备文件是以文件流的方式进行访问的, 因此可以顺序读取, 但通常不支持随机存取. 使用 ls -l 命令查看, 字符设备文件的第一个字符是 "c"(char).
5, 管道文件(FIFO 文件)
管道文件主要用于进程间通信, 使用 ls -l 命令查看, 第一个字符为 "p"(pipe). 可以使用 mkfifo 命令来创建一个管道文件:
mkfifo fifo_file
在 FIFO 中可以很好地解决在无关进程间数据交换的要求, FIFO 的通信方式类似于在进程中使用文件来传输数据, 只不过 FIFO 类型的文件同时具有管道的特性, 在读取数据时, FIFO 管道中同时清除数据.
来源: http://www.bubuko.com/infodetail-2963605.html