LINUX shell 判断文件是否存在以及其他操作属性
以下是 shell 中常用的判断文件属性的选项,在 shell 脚本中可直接拿来对文件属性进行判别。-a检查文件是否存在-b检查是否为块特殊文件[1]-c检查是否为字符特殊文件[2]-d检查是否为文件夹-...
以下是 shell 中常用的判断文件属性的选项,在 shell 脚本中可直接拿来对文件属性进行判别。
-a | 检查文件是否存在 |
-b | 检查是否为块特殊文件[1] |
-c | 检查是否为字符特殊文件[2] |
-d | 检查是否为文件夹 |
-e | 检查文件是否存在 |
-f | 检查是否为常规文件[3] |
-g | 检查gid[4]是否被置位 |
-G | 检查是否有相同的组ID |
-k | 检查防删除位是否被置位 |
-L | 检查是否为符号链接[5] |
-n | 判断字符串长度是否不为0 |
-O | 检查文件是否被当前进程的user ID拥有 |
-p | 检查文件是否为FIFO[6]特殊文件或命名管道[7] |
-r | 检查文件是否可读 |
-s | 检查文件大小是否大于0 |
-S | 检查文件是否为socket文件 |
-t | 检查文件描述符是否打开 |
-u | 检查uid[8]是否被置位 |
-w | 检查文件是否可写 |
-x | 检查文件是否可执行 |
-z | 判断字符串长度是否为0 |
注:
1. 块特殊文件(block special file),提供对固定大小的块传输的设备(例如磁盘)的访问权限
2. 字符特殊文件(character special file),提供对单个字符为传输单位的设备(例如终端)的访问权限
3. 常规文件(regular file),文本文件或二进制文件,区别于文件夹、符号链接或套接字文件等等
4. setgid: 该权限只对目录有效。目录被设置该位后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组
5. 符号链接(symbolic link),该文件包含了另一个文件的路径名。可以是任意文件或目录,也可以链接不同文件系统的文件
6. FIFO:first in first out
7. 命名管道(named pipe)是一种有名字的,建立在pipe server和一个(或多个)pipe client之间的单向或双向的通信管道。一个命名管道的所有实例都会共享一个相同的pipe name,但是每个实例都有他自己的缓冲区和句柄(handle),并且为客户端/服务器的通讯提供一个单独的导管
8. setuid:设置使文件在执行阶段具有文件所有者的权限。典型的文件是 /usr/bin/passwd。如果一般用户执行该文件,则在执行过程中,该文件可以获得root权限,从而可以更改用户的密码
更多推荐
所有评论(0)