如何在perl中从目录中识别文件(tell a file from a directory in perl)

假设您正在构建一个Perl脚本来遍历文件系统并记录它所发现的内容。当您打开文件句柄时,您需要知道您是在处理实际的文件还是在处理一个目录,这两个文件的处理方式是不同的。您希望全局化一个目录,以便可以继续递归地解析文件系统。从目录中识别文件的最快方法是使用Perl的内置​文件测试操作符。Perl具有可用于测试文件不同方面的运算符。-f运算符用于标识常规文件,而不是目录或其他类型的文件。...

假设您正在构建一个Perl脚本来遍历文件系统并记录它所发现的内容。当您打开文件句柄时,您需要知道您是在处理实际的文件还是在处理一个目录,这两个文件的处理方式是不同的。您希望全局化一个目录,以便可以继续递归地解析文件系统。从目录中识别文件的最快方法是使用Perl的内置​文件测试操作符。Perl具有可用于测试文件不同方面的运算符。-f运算符用于标识常规文件,而不是目录或其他类型的文件。

Man on laptop

使用-f文件测试操作符

#!/usr/bin/perl -w$filename = '/path/to/your/file.doc';$directoryname = '/path/to/your/directory';if (-f $filename) {print "This is a file.";}if (-d $directoryname) {print "This is a directory."; }

首先,创建两个字符串:一个指向文件,另一个指向目录。接下来,用-f操作符测试$filename,它检查某个文件是否是文件。这将打印“这是一个文件”。如果您在目录上尝试-f操作符,它将不会打印。然后,对$directoryname执行相反的操作,并确认它实际上是一个目录。将其与目录glob相结合,以排序哪些元素是文件,哪些元素是目录:

#!/usr/bin/perl -w@files = <*>;foreach $file (@files) {if (-f $file) {print "This is a file: " . $file;}if (-d $file) {print "This is a directory: " . $file;}}​

在线提供了Perl文件测试操作符的完整列表。

  • 发表于 2021-10-10 10:16
  • 阅读 ( 188 )
  • 分类:编程

你可能感兴趣的文章

您应该知道的基本windows cmd命令

... CIPHER - Displays or alters the encryption of directories (files) on NTFS partiti***. ...

  • 发布于 2021-03-15 18:07
  • 阅读 ( 319 )

如何在linux上使用rename命令

...令行中重命名它们,以便它们具有“.prg”扩展名。 我们如何说服mv为我们做这件事?我们来看看档案。 ls *.prog -l 这里有一种方法不需要编写实际的Bash脚本文件。 for f in *.prog; do mv -- "$f" "${f%.prog}.prg" 那有用吗?让我们查一下...

  • 发布于 2021-04-03 12:15
  • 阅读 ( 276 )

硬盘上的数据会在没有损坏警告的情况下降级吗?

我们都担心保持数据和文件的安全和完整,但是否有可能数据被损坏,并且在没有任何问题通知或警告的情况下被用户访问?今天的超级用户问答帖子回答了一位忧心忡忡的读者的问题。 今天的问答环节是由SuperUser提供的,Supe...

  • 发布于 2021-04-09 15:31
  • 阅读 ( 265 )

为什么windows仍然使用快捷方式文件而不是符号链接?

随着时间的推移,Windows不断发展并添加了更多的功能,您可能会发现自己很好奇为什么它继续使用较旧的“功能”,如快捷方式文件。有鉴于此,今天的超级用户问答帖子回答了困惑读者的问题。 今天的问答环节是由SuperUser提...

  • 发布于 2021-04-09 23:56
  • 阅读 ( 122 )

为什么一些windows文件和文件夹名称前面有一个点?

... to AppData\Roaming and AppData\Local. You have these .ssh and .subversion directories on Windows because you have used some programs (specifically, OpenSSH and Subversion) that have been ported to use Windows system APIs rather than POSIX ones, but have not been adjusted for some other Windows conv...

  • 发布于 2021-04-10 04:29
  • 阅读 ( 209 )

一个文件的大小怎么可能是零?

我们偶尔都会在电脑上遇到一个让我们完全困惑的“情况”,比如一个大小为零的文件,但这怎么可能呢?今天的超级用户问答有一个困惑读者的问题的答案。 今天的问答环节是由SuperUser提供的,SuperUser是Stack Exchange的一个分...

  • 发布于 2021-04-10 05:56
  • 阅读 ( 137 )

如何使一个文件同时出现在多个文件夹中?

...s with Windows. Alternatively, a way to paste the file into all the target directories at once, instead of one at a time, would accomplish the same goal. 有没有办法做到这一点,而不是复制和粘贴脚本文件一次一个文件夹? 答案 超级用户贡献者gronostaj为我们提供...

  • 发布于 2021-04-10 21:32
  • 阅读 ( 163 )

当数据从回收站中删除时会发生什么?

大多数情况下,除了知道已删除的文件已经不在我们的视线之外,我们很少会想到已删除的文件,但当我们删除这些文件时,这些文件会发生什么呢?今天的超级用户问答帖子回答了一位好奇的读者关于删除过程的问题。 今天...

  • 发布于 2021-04-11 06:22
  • 阅读 ( 168 )

为什么microsoft word在使用时要创建两个副本?

虽然您可能没有考虑或意识到这一点,但Microsoft Word会为您打开并正在处理的任何文档创建第二个副本。但微软Word为什么要这么做呢?今天的超级用户问答帖子回答了一位好奇的读者关于这种行为的问题。 今天的问答环节是由S...

  • 发布于 2021-04-11 10:33
  • 阅读 ( 218 )

文件系统只是一堆文件夹吗?(文件系统说明)

...hildhood, and when I hear the phrase “Windows files system” I think of directories (folders) within directories, a folder called SYSTEM, a folder called PROGRAM FILES, etc. Is this what the system is? Just the layout of the folders? And then I recently started using Linux, and my reference book ...

  • 发布于 2021-04-12 03:07
  • 阅读 ( 217 )
L118201215
L118201215

0 篇文章

相关推荐