问题标签 [file-find]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Perl File::Find: 先列出目录中的所有文件然后跳转到下一个目录?
我想(通过使用 File::Find)首先列出当前目录中的所有文件,然后跳转到子目录。是否可以?
perl - 用于在 Unix 上查找所有无主文件和目录的 Perl 脚本 - 如何进一步优化?
根据我在另一篇文章How to exclude a list of full directory paths in find command on Solaris 中的发现和建议,我决定编写这个脚本的 Perl 版本,看看如何优化它以比原生 find 命令运行得更快. 到目前为止,结果令人印象深刻!
此脚本的目的是报告 Unix 系统上所有未拥有的文件和目录,以确保审计合规性。该脚本必须接受要排除的目录和文件列表(通过完整路径或通配符名称),并且必须尽可能少地占用处理能力。它可以在我们(我工作的公司)支持的数百个 Unix 系统上运行,并且能够在所有这些 Unix 系统上运行(多操作系统、多平台:AIX、HP-UX、Solaris 和 Linux)无需我们先安装或升级任何东西。换句话说,它必须与我们可以在所有系统上期望的标准库和二进制文件一起运行。
我还没有让脚本参数感知,所以所有参数都硬编码在脚本中。我计划最后提出以下论点,并且可能会使用 getopts 来做到这一点:
这是我到目前为止所做的来源:
如果您想在您的系统上测试它,只需使用通用文件创建一个测试目录结构,使用您为此创建的测试用户chown 整个树,然后删除该用户。
我会接受你能给我的任何提示、提示或建议。
快乐阅读!
perl - Perl 查找 - 没有这样的文件或目录
我在一个文本文件上使用 File::Find 和 file i/o 来解析一系列目录并将内容移动到一个新文件夹中。这是一个简单的脚本(见下文):
文本文件包含一个数字列表:
该代码在我上个月执行时有效,但现在返回“找不到文件或目录”错误。实际错误是"No such file or directoryerDocuments/coastallglive/Account2805"。我知道它正在搜索的所有目录都存在。我手动输入了其中一个目录,脚本执行得很好:
我不确定为什么返回错误。在此先感谢您的帮助。
perl - File::Find::Rule::LibMagic:可以保留未定义值的选项吗?
是否可以保留未定义值的选项(在本例中为“最大深度”)?
或者我应该这样写:
perl - 当使用 Perl 的 File::Find 什么是限制搜索深度的快速简单的方法?
我希望能够将 Perl 的File::Find
目录深度(低于指定的搜索)限制到指定的目录和它下面的 1 和 2 个子目录。
如果可能的话,我希望能够同时枚举文件。
它必须使用绝对路径。
perl - 在程序逻辑方面需要一些帮助
我正在尝试读取配置文件并丢弃其中列出的具有文件中提到的大小的目录。到目前为止,我有这个-
for 循环的问题在于 - 它很好地存储了要从数组中丢弃的所有子目录。但是,当它读取要丢弃的第一个目录的名称时,它不知道剩余的子目录并列出它们。当它到达第二个值时,它会忽略前一个值并列出它。
有谁知道 File|::Find::Rule 是否一次采用一个数组,以便代码一次考虑配置文件中的整行?或任何其他逻辑?
谢谢
perl - 在 Perl 中从网络驱动器读取文件
我正在研究一个 perl 脚本,该脚本从我们网络上的某个根目录开始为所有目录中的 pdf 进行文档清单。该脚本在本地运行良好,但我无法让它从网络驱动器读取文件。我有草莓perl
这是我的代码的开始
我使用 Tk Gui 来获取目录
捕获当前目录中的所有文件和文件夹
我的网络驱动器在网络使用中看起来像这样
本地 N:远程 \abc-file-01\shared 数据
请原谅我的初学者代码。我的问题是我是否对网络驱动器做错了,或者我是否必须向我们的管理员询问权限。非常感谢,丹
perl - File::Find 是否有更简洁的方法来返回所需文件的列表?
我发现背后的设计选择File::Find::find
有点令人惊讶。我遇到的所有示例都显示find
在无效上下文中。
该文档还澄清了\&wanted
coderef infind( \&wanted, @dirs )
并不意味着是一个过滤器(强调我自己的):
该
wanted()
函数对每个 文件和目录执行您想要的任何验证。请注意,尽管它的名称,该wanted()
函数是一个通用的回调函数,并且不告诉文件File::Find
是否“需要”。实际上,它的返回值被忽略了。
但是,如果我确实想以类似于的方式将其用作过滤器grep
怎么办?我很想知道是否有另一种写法:
perl - 如何在 perl 中使用 FILE::FIND 从搜索中排除扩展名为“.doc 或 .jar”的文件
我面临两个问题。
1)我正在为某些关键字搜索目录,并且该目录包含具有许多扩展名的文件,例如 .java .sql .ksh .pl .jar 等。现在我的问题是我不想搜索具有 .jar 或 .doc 或 .docx 的文件。目前我的代码如下所示
在此它正在搜索所有文件,现在我想限制搜索,以便无需搜索 .jar、.exe 、.doc 类型的扩展名。
2)在搜索目录时,我有很多子目录。我不想在名称已过时或已退休的目录中搜索(例如 obsolete_dr 、 denied_as )我如何使用 file::find 来实现这一点
我想我有点困惑实际上下面是我需要的输出
从上面的代码 $file::find::name 显示文件路径,如果此文件路径包含过时或退役,则不应显示该输出。
例如,我得到了类似的路径
不应显示上述第一个路径,因为它的单词已过时。
我想现在我很清楚了。提前致谢
perl - 优化perl递归查找两个目录的差异
我试图找出 Perl 中两个目录之间的区别。我想优化它以高效运行,也不确定如何忽略某些文件(比如扩展名为 .txt 或 .o)
我到目前为止的代码是: