linux文件测试操作

1、文件测试操作

返回 true 如果...
-e 文件存在
-a  文件存在
这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用
-f  file 是一个 regular 文件(不是目录或者设备文件)
-s  文件长度不为 0
-d 文件是个目录-r  文件具有读权限(对于用户运行这个 test)
-w 文件具有写权限(对于用户运行这个 test)
-x  文件具有执行权限(对于用户运行这个 test)

2、整数比较

-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
<  小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
>  大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))

3、字符串比较

=  等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
1 [[ $a == z* ]] # 如果$a 以"z"开头(模式匹配)那么将为 true
2 [[ $a == "z*" ]] # 如果$a 等于 z*(字符匹配),那么结果为 true
3
4 [ $a == z* ] # File globbing 和 word splitting 将会发生
5 [ "$a" == "z*" ] # 如果$a 等于 z*(字符匹配),那么结果为 true
一点解释,关于 File globbing 是一种关于文件的速记法,比如"*.c"就是,再如~也是.
但是 file globbing 并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
!= 不等于,如:if [ "$a" != "$b" ]
这个操作符将在[[]]结构中使用模式匹配.
<  小于,在 ASCII 字母顺序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]结构中"<"需要被转义.
>  大于,在 ASCII 字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注意:在[]结构中">"需要被转义.
具体参考 Example 26-11 来查看这个操作符应用的例子.
-z  字符串为"null".就是长度为 0.
-n 字符串不为"null"
注意:
使用-n 在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z
或者就是未用""引用的字符串本身,放到[]结构中
时间: 2024-11-09 20:26:04

linux文件测试操作的相关文章

linux 文件常用操作

linux 文件基本操作 新建文件:touch test 不会替换重名文件,并且linux一切都是文件,文件夹和文件不能重名 新建文件夹:mkdir test使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在安装软件.配置安装路径时非常有用):mkdir -p father/son/grandson 复制文件 cp test father/son/grandson复制文件夹:cp -r father family 必须加参数 -r 删除文件:rm test

Perl文件测试操作和stat函数

在shell中通过test命令或者中括号[]可以进行文件测试以及其它类型的测试,例如判断文件是否存在,比较操作是否为真等等.perl作为更强大的文本处理语言,它也有文件测试类表达式,而且和shell的文件测试用的字母符号都类似. perl中测试文件的属性来源是perl的内置函数stat,它可以获得文件的13项属性.后文会介绍该函数. 测试符 测试符号都是短横线开头,加一个字母.例如,测试文件是否存在-e "a.log".在可能产生歧义的情况下,这些测试符可以用括号包围,例如:(-e &

Linux命令——Linux文件权限操作

基本知识 查看权限 命令:ls -l 查询结果如下 drwxrwxr-x 第1个字母:代表文件类型 第2~4字母:代表用户的权限 第5~7字母:代表用户组的权限 第8~10字母:代表其他的用户的权限 2:链接数 jingguoliang:所属用户 jingguoliang:所属用户组 4096:文件大小 Mar 21 09:31:最后修改时间 project:文件名 Linux文件类型 在Linux常见的文件类型有7种,分别如下所示 文件属性 文件类型 - 常规文件,即file d 目录文件 b

bash 脚本 文件测试操作与二元操作符

-e                     文件存在 -a                     文件存在 这个选项的效果与-e相同.但是它已经被弃用了,并且不鼓励使用 -f                      file是一个regular文件(不是目录或者设备文件) -s                     文件长度不为0 -d                     文件是个目录 -b                     文件是个块设备(软盘,cdrom等等) -c    

linux文件简单操作

1.vim常用快捷键 dd/ndd 删除1行/删除n行 yy/nyy  复制1行/复制n行 p 粘贴 u 撤销 dw/ndw 删除一个单词/删除n个单词 G /nG  到一行尾/第n行尾 :!+命令  执行命令 :w  file 写一个文件 :w >>file 追加到 :r file   读一个文件 :r ! ls 将ls命令结果读入 :e! 回到最初状态 vim -o/-O file1 file2 分割窗口 2.查找文件 which 查找可执行命令 whereis 查找可执行文件,列出文件位

linux文件通用操作2

本文讲解文件的偏移(lseek()函数).文件状态的获取(fstat()函数).文件空间的映射(mmap()函数).文件的属性(fcntl()函数) 1.文件偏移量lseek()函数 文件偏移量是指文件当前的操作位置,相对文件开始位置的偏移 写入数据成功,文件偏移量要向后移动写入数据的大小 读出数据成功,文件偏移量要想前移动读出数据的大小 在使用open()函数的是时候,当使用flags指定为O_APPEND选项,文件的偏移量为0,如果指定了O_APPEND选项,偏移到文件的末尾 1.1.lse

linux文件夹操作及递归遍历文件夹

文件夹相关函数介绍 //mkdir 函数创建文件夹 #include <sys/stat.h> #include <sys/types.h> int mkdir(const char *pathname, mode_t mode); //rmdir 删除文件夹 #include <unistd.h> int rmdir(const char *pathname); //dopendir/fdopendir  //打开文件夹 DIR是一个结构体,是一个内部结构,用来存储读

linux shell 学习笔记--文件测试符

1. 文件测试操作 ---------------- 返回true 如果... -e 文件存在 -a 文件存在 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用 -f file 是一个regular 文件(不是目录或者设备文件) -s 文件长度不为0 -d 文件是个目录 -b 文件是个块设备(软盘,cdrom 等等) -c 文件是个字符设备(键盘,modem,声卡等等) -p 文件是个管道 -h 文件是个符号链接 -L 文件是个符号链接 -S 文件是个socket -t 关联到一个

Perl 学习笔记-文件测试

1.文件测试操作符 针对文件和目录的测试操作符: -r/-w/-x/-o: 文件或目录, 对有效的(负责运行这个程序的)用户或组来说是可读/写/执行/拥有 的; 这些测试位会查看文件的权限位, 以此判断哪些操作是允许的, 如果系统使用访问控制列表(ACL), 那么测试就按列表进行判断, 但是只是测试结果只是操作系统的看法, 但是受实际情况限制, 运行的事未必可行, 如空文件运行运行, 但是并没有什么意义. -R/-W/-X/-O: 文件或目录, 对实际的用户或组来说是可读/写/执行/拥有 的;