首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Perl的文件测试运算符-f为符号链接返回true

在Perl中,文件测试运算符-f用于检查文件是否为普通文件。当文件是普通文件时,-f运算符返回true,否则返回false

然而,需要注意的是,-f运算符在处理符号链接时会返回true,因为它会检查符号链接指向的文件是否为普通文件。这意味着,如果你使用-f运算符检查一个符号链接,它会返回true,即使符号链接本身不是普通文件。

如果你想要检查符号链接本身是否为普通文件,而不是检查符号链接指向的文件,请使用-l运算符来检查是否为符号链接,然后再使用-f运算符检查符号链接指向的文件是否为普通文件。例如:

代码语言:javascript
复制
if (-l $file && -f readlink($file)) {
    # 处理符号链接指向的普通文件
    # ...
}

在上述示例中,我们首先使用-l运算符检查文件是否为符号链接,然后使用readlink()函数获取符号链接指向的文件路径,并使用-f运算符检查该文件是否为普通文件。只有当两个条件都满足时,才会执行相应的处理逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Perl语言入门》——读书笔记

符号意为“取标量”,variable 内插时可用花括号来限定名称范围:print "Hi 双目运算符:+=,....'\n'; # 结果:The month is Apr 第十二章 文件测试 测试操作符 参考文档:% perldoc -f X 建议去了解对应系统具体内容,比如Linux/Unix下文件,可阅读...,先测试-r,后测试-w -T和-B:测试某个文件是文本文件还是二进制文件。...你可能会认为-T和-B出现结果必定相反,因为文件若不是文本文件,就该是二进制文件。但是,有两种特殊情况会让测试结果相同: 如果文件不存在,两则都会返回假。因为它即不是文本文件也不是二进制文件。...在空文件情况下,两者都会返回真,因为它即是空文本文件也是空二进制文件

2.5K20

Perl快速入门学习

perl -w script.pl string.txt #string是要被提取源文本 特殊变量 $/ 特殊变量能使用一种神奇方式,让不再返回单行文字,而是返回或多或少一段文件。...F, And $celsius ℃\n"; 执行结果: perl demo1.pl 86 F, And 30 ℃ 注意事项: (1)Perl符号=~ / = 和 \=\= 之间差别,等于 \=\=测试两个数字是否相等...Perl正则表达式中元字符更多; $variable=~ m/regularExpression/i #来判断一个正则表示是是否能匹配某个字符串; #整个测试语句作为一个单元返回boolean类型返回...line anchor),^$将切换到逻辑行模式; Perl提供例如许多简洁元字符: \cx 匹配由X指明控制字符 \n : 换行符 \f : ASCII 进制符号 \t : tab键符号 \b...$demo = ; #交互式接收用户输入 chomp($demo); #去掉$demo变量中输入换行符 # 关键点:注意=~符号 m/,匹配成功返回true否则false if

2.4K20
  • linux22-条件语句

    返回非零退出码,则会执行else部分。 elif则相当于 else + if + then,若elif 后命令退出码0,则会继续执行elif 后面的语句。...三类条件判断: 数值比较 字符串比较 文件比较 2.1-数值比较 如果你学习过perl 的话,对此可能会深有体会: $ cat test.perl #!...但shell 不同于perl,它们二者数值与字符串符号正好相反。...2.3-文件比较 文件比较是比较测试中最丰富类型: -d file # 检查file 是否一个目录 -e file # 检查file 是否存在 -f file # 是否文件 -r file # 是否可读...表示取反 mkdir test_{1..5} ❯ if test test_1 -ot test_5; then echo older; fi older 3-复合条件测试 shell 提供了两种布尔运算符实现复合条件测试

    1.3K10

    Perl快速入门学习

    perl -w script.pl string.txt #string是要被提取源文本 特殊变量 $/ 特殊变量能使用一种神奇方式,让不再返回单行文字,而是返回或多或少一段文件。...F, And $celsius ℃\n"; 执行结果: perl demo1.pl 86 F, And 30 ℃ 注意事项: (1)Perl符号=~ / = 和 \=\= 之间差别,等于 \=\=测试两个数字是否相等...Perl正则表达式中元字符更多; $variable=~ m/regularExpression/i #来判断一个正则表示是是否能匹配某个字符串; #整个测试语句作为一个单元返回boolean类型返回...line anchor),^$将切换到逻辑行模式; Perl提供例如许多简洁元字符: \cx 匹配由X指明控制字符 \n : 换行符 \f : ASCII 进制符号 \t : tab键符号...$demo = ; #交互式接收用户输入 chomp($demo); #去掉$demo变量中输入换行符 # 关键点:注意=~符号 m/,匹配成功返回true否则false if

    1.3K20

    Mac下Shell脚本基础用法

    3.5、基本运算符 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单数学运算,但是可以通过其他命令来实现...[ $a -le $b ] 返回 true。 布尔运算符 下表列出了常用布尔运算符,假定变量 a 10,变量 b 20: 运算符 说明 举例 !...[ $a ] 返回 true文件测试运算符 文件测试运算符用于检测 Unix 文件各种属性。...[ -d $file ] 返回 false。 -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。...-L: 检测文件是否存在并且是一个符号链接

    4.6K40

    Shell 编程语法基础

    = $b ] 返回 true 关系运算符 Shell关系运算符和C/C++/Python不一样,它们大于用>表示即可,但是Shell得用关键字表示,下表列出了常用得关系运算符,假定变量a10,变量...字符串运算符 下表列出了常用字符串运算符,假定变量 a “abc”,变量 b “efg”: 运算符 说明 举例 = 检测两个字符串是否相等,相等返回 true [ $a = $b ] 返回 false...= $b ] 返回 true -z 检测字符串长度是否0,0返回 true [ -z $a ] 返回 false -n 检测字符串长度是否0,不为0返回 true [ -n "$a" ] 返回 true...$ 检测字符串是否空,不为空返回true [ $a ]返回true 字符串运算符使用示例代码如下: #!...-e file : 文件存在。 -f file : 文件存在并且是一般文件。 -g file : 文件存在并且设置了 setgid 位。 -h file : 文件存在并且是一个链接文件

    2.3K10

    Day4:R语言课程(向量和因子取子集)

    测试数据metadata例。 输入变量名metadata,回车来查看数据框; 变量中包含样本信息。...使用关联索引[ ]以执行以下操作: 仅显示C,D和F. 显示除X外所有内容 以相反顺序显示字母(F,L,X,D,C) ---- 选择使用带有逻辑运算符索引 我们也可以使用带有逻辑运算符索引。...逻辑运算符包括大于(>),小于(<)和等于(==)。R中逻辑运算符完整列表如下所示: 操作符号 描述 > 大于 > = 大于或等于 < 少于 <= 小于或等于 == 等于 !...仍以age向量例: age 想知道age向量中每个元素是否大于50,可以使用: age > 50 返回是具有与age相同长度逻辑值向量,其中TRUE和FALSE值指示向量中每个元素是否大于...虽然逻辑表达式将返回相同长度TRUE和FALSE值向量,但我们可以使用该which()函数输出值TRUE索引。

    5.6K21

    每天学一个 Linux 命令(95):test

    命令简介 test 命令执行条件表达式,用于检查文件类型并比较值,评估条件。如果 true,则返回 0 退出状态,否则返回 1。...-f FILE 如果文件存在并且是常规文件,则为true。 -g FILE 如果文件是set-group-id,则为true。 -h FILE 如果文件符号链接,则为true。...-L FILE 如果文件符号链接,则为true。 -k FILE 如果文件粘滞位(sticky)设置了,则为true。 -p FILE 如果文件是命名管道,则为true。...FILE1 -ef FILE2 如果 file1 file2 链接,则为true。 字符串运算符 -z STRING 如果字符串空,则为true。...arg1 OP arg2 算术表达式测试;OP是 -eq,-ne,-lt,-le,-gt,-ge 中一个;算术表达式真时返回true

    78820

    Shell 基本运算符

    Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单数学运算,但是可以通过其他命令来实现,例如 awk 和...false" fi 执行脚本,输出结果如下所示: 返回 false 返回 true ---- 字符串运算符 下表列出了常用字符串运算符,假定变量 a "abc",变量 b "efg": 运算符...= efg : a 不等于 b -z abc : 字符串长度不为 0 -n abc : 字符串长度不为 0 abc : 字符串不为空 ---- 文件测试运算符 文件测试运算符用于检测 Unix 文件各种属性...[ -d $file ] 返回 false。 -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。...-L: 检测文件是否存在并且是一个符号链接。 实例 变量 file 表示文件 /var/www/runoob/test.sh,它大小 100 字节,具有 rwx 权限。

    38000

    shell编程基础入门

    [ $a -le $b ] 返回 true。 布尔运算符 布尔运算符列表运算符说明举例!非运算,表达式 true返回 false,否则返回 true。[ ! false ] 返回 true。...下面的代码,将检测该文件各种属性: 文件测试运算符列表操作符说明举例-b file检测文件是否是块设备文件,如果是,则返回 true。[ -b $file ] 返回 false。...[ -d $file ] 返回 false。-f file检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。[ -f $file ] 返回 true。...-x file检测文件是否可执行,如果是,则返回 true。[ -x $file ] 返回 true。-s file检测文件是否空(文件大小是否大于0),不为空返回 true。...;命令通常测试条件。

    1.3K40

    Shell特殊字符

    shel运算符比较多,大致可以分为如下几类:算数运算符、关系运算符、逻辑运算符、字符串运算符文件测试运算符。...序号 符号 作用 示例 82 ! 非运算,表达式 true返回 false,否则返回 true。 [ ! false ] 返回 true。...92 =~ 正则表达式匹配运算符,用于匹配正则表达式,配合[[]]使用 if [[ ! $file =~ check$ ]],用于判断$file是否是以check结尾 文件测试运算符。...文件测试运算符用于检测 Unix 文件各种属性。 序号 符号 作用 示例 94 -b 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。...[ -d $file ] 返回 false。 97 -f 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true

    5.1K10

    Apache Pig学习笔记(二)

    主要整理了一下,pig里面的一些关键词含义和用法,pig虽然是一种以数据流处理核心框架,但数据库大部分关键词和操作,在pig里面基本上都能找到对应函数,非常灵活与简洁,春节前最后一篇文章了,...:,CASE (4) Null运算符is not null ,is null (5) 集合类型引用符号tuple(.)...a,b,c,b,b,c就成为一行数据了 10,cogroup,多表分组使用 11,cross,两个数据源链接,会产生笛卡尔集 12,distinct,去重,与关系型数据库不同是,不能对单个...,比如将pig处理中间结果,传给python,perl,或者shell等等 27,union,类似数据union,合并两个结果集一个结果集 28,register,UDF中,使用此关键词注册我们组件...,可能是一个jar包,也可能是一个python文件 29,define,给UDF引用定义一个别名 30,import,在一个pig脚本中,使用imprt关键词引入另外一个pig脚本

    1.1K90

    简单&基础shell操作_转发分享

    使用变量: 只需要在一个定义过变量前面加上美元符号 $ 就可以了, 另外,对于变量{} 是可以选择, 它目的帮助解释器识别变量边界....常见有: image 注意:也别忘记了空格; 布尔运算符: image 字符串运算符: image 文件测试运算符: 检测 Unix 文件各种属性。...: 例如:当一个路径 /home/xiaoming/1.txt时,如何怎么它路径(不带文件) 和如何得到它文件名??...常用格式: until command do Statement(s) to be executed until command is true done command 一般条件表达式,如果返回...像删除变量一样,删除函数也可以使用 unset 命令,不过要加上 .f 选项,如下所示: unset .f function_name shell文件包含: Shell 也可以包含外部脚本,将外部脚本内容合并到当前脚本

    1K10

    【旧文重发 | 04】IC基础知识

    同样,float * f; 告诉编译器变量“ f”是一个指针,其值是存储浮点变量存储位置地址。...链表是一种物理存储单元上非连续、非顺序存储结构,数据元素逻辑顺序是通过链表中指针链接次序实现。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。...以上算法空间复杂度: O(1) O(1) O(N) O(N) O(N) [89] C/C++中,"&"和"&&"有什么区别? &是按位与运算符,而&&是逻辑与运算符。...逻辑运算符使用布尔值-真(1)和假(0),并返回布尔值。按位运算符对每个位执行位操作并返回位值。...按位运算符:如果a = 10而b = 6,则a&b将返回2(4'b1010&4'b0110 = 4'b0010) 逻辑运算符:如果a = 10而b = 6,则以下表达式将返回true,因为对两个布尔值进行操作

    91830

    高级shell脚本编程指南_python快速入门

    6.1 shell运算符种类 6.2 算数运算符 6.3 关系运算符 6.4 布尔运算符 6.5 逻辑运算符 6.6 字符串运算符 6.7 文件测试运算符 7.shell编程中命令 7.1...,不支持字符串,除非字符串是数字,下表常用关系运算符,同样指定a10,b20 运算符 说明 举例 -eq 检测两个数是否相等,相等返回 true。...= efg : a 不等于 b 1 6.7 文件测试运算符 shell中文件测试运算符用于检测在类unix系统中,文件各种属性,如下表 操作符 说明 举例 -b file 检测文件是否是块设备文件...-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。...[ -x $file ] 返回 true。 -s file 检测文件是否空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true

    3.1K10

    Python学习–02输入和输出、运算符

    不带符号八进制 u 不带符号十进制 x 不带符号十六进制(小写) X 不带符号十六进制...< 小于 – 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊变量True和False等价。注意,这些变量名大写。 (a < b) 返回 true。...not not x 布尔”非” – 如果 x True返回 False 。如果 x False,它返回 True。...: 0000 1111 成员运算符 以下假设变量 a 1, b 20,c[1, 2, 3, 4, 5 ]: 运算符 描述 实例 in 如果在指定序列中找到值返回 True,否则返回 False...(a in c), 返回 True。 not in 如果在指定序列中没有找到值返回 True,否则返回 False。 (b not in c), 返回 True

    56410

    Shell 基本运算符--文件测试运算符

    文件测试运算符用于检测 Unix 文件各种属性。 属性检测描述如下: 操作符 说明 举例 -b file 检测文件是否是块设备文件,如果是,则返回 true。...-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。...[ -x $file ] 返回 true。 -s file 检测文件是否空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。...-L: 检测文件是否存在并且是一个符号链接。 实例 变量 file 表示文件 /var/www/runoob/test.sh,它大小 100 字节,具有 rwx 权限。...echo "文件不可执行" fi if [ -f $file ] then echo "文件普通文件" else echo "文件特殊文件" fi if [ -d $file ]

    33720
    领券