我有一个相对路径
$base_path = "input/myMock.TGZ";
myMock.TGZ
是位于输入文件夹中的文件名。
文件名可以更改。但路径始终存储在$base_path
.
我需要检查该文件是否存在于$base_path
.
测试是否某物存在于给定路径,使用-e
文件测试运算符。
print "$base_path exists!\n" if -e $base_path;
然而,这个测试可能比您预期的更广泛。如果该路径中存在普通文件,上面的代码将生成输出,但它也会针对目录、命名管道、符号链接或更奇特的可能性触发。查看文档了解详情。
鉴于延长.TGZ
在你的问题中,你似乎期望纯文件而不是替代方案。这-f
文件测试运算符询问路径是否通向纯文件。
print "$base_path is a plain file!\n" if -f $base_path;
perlfunc 文档涵盖了很长的列表Perl 的文件测试运算符涵盖了您在实践中会遇到的许多情况。
-
-r
文件可由有效 uid/gid 读取。
-
-w
文件可通过有效 uid/gid 写入。
-
-x
文件可由有效 uid/gid 执行。
-
-o
文件由有效 uid 拥有。
-
-R
文件可由真实 uid/gid 读取。
-
-W
文件可由真实 uid/gid 写入。
-
-X
文件可由真实的 uid/gid 执行。
-
-O
文件由真实的 uid 拥有。
-
-e
文件已存在。
-
-z
文件大小为零(为空)。
-
-s
文件的大小非零(返回大小以字节为单位)。
-
-f
文件是一个普通文件。
-
-d
文件是一个目录。
-
-l
文件是符号链接(如果文件系统不支持符号链接,则为 false)。
-
-p
File 是一个命名管道 (FIFO),或者 Filehandle 是一个管道。
-
-S
文件是一个套接字。
-
-b
文件是块特殊文件。
-
-c
文件是字符特殊文件。
-
-t
文件句柄打开到 tty。
-
-u
文件已设置 setuid 位。
-
-g
文件已设置 setgid 位。
-
-k
文件已设置粘滞位。
-
-T
文件是 ASCII 或 UTF-8 文本文件(启发式猜测)。
-
-B
文件是一个“二进制”文件(与-T
).
-
-M
脚本启动时间减去文件修改时间(以天为单位)。
-
-A
访问时间相同。
-
-C
inode 更改时间相同(Unix,其他平台可能有所不同)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)