【发布时间】:2021-06-14 06:47:39
【问题描述】:
我正在尝试开发一个 perl 脚本,它可以在用户的所有目录中查找特定文件名,而无需用户指定文件的完整路径名。
例如,假设感兴趣的文件是data.list。它位于/home/path/directory/project/userabc/data.list。在命令行中,通常用户必须指定文件的路径名才能访问它,如下所示:
cd /home/path/directory/project/userabc/data.list
相反,我希望用户只需在命令行中输入 script.pl ABC,然后 Perl 脚本将自动运行并检索 data.list. 中的信息,在我的情况下,计算行数和使用 curl 上传。剩下的就完成了,就是可以自动定位文件的部分了
【问题讨论】:
-
"我从这个开始,但它无法正常工作,因为它只能在其当前目录中找到文件:" - 我什至看不到你的脚本是如何做到这一点的。它只是打印出文件名。没有尝试将文件名与某个参数进行比较。这让我想知道您的实际问题是什么:从命令行获取文件名作为参数,将给定的文件名与
findfiles中的文件名进行比较,然后返回结果......?请把你实际遇到的问题描述的更清楚。 -
该代码只是可以搜索文件名的东西,与问题不太相关,但我认为该代码将帮助我开始
-
我不明白这个问题(
ABC是文件名吗?),但这似乎是File::Find 的直接工作。 Like:use File::Find; find(sub { if ($_ eq $filename) { say $File::Find::name } }, $dir);(其中$filename是查找文件的名称)。查看链接文档