如何优化 Perl 中的符号链接删除?

问题描述 投票:0回答:1

我正在编写一个 Perl 脚本来删除目录中的符号链接,我注意到当前使用 find 命令的方法需要花费相当多的时间。我正在寻找更有效的解决方案。

这是当前的代码片段:

system("find '$dir' -type l -exec rm -f {} \\;");

我还尝试了使用 unlink 和 glob 的替代方法:

unlink glob("$dir/*") if -e $dir;

但是,这两种方法似乎都有其缺点,我想知道是否有更优化的方法来实现 Perl 中的符号链接删除。

  1. 我可以对 find 命令应用任何特定的优化吗?
  2. 是否有更有效的仅 Perl 解决方案来删除目录中的符号链接?
  3. 是否有专门用于目录遍历和链接操作的 Perl 模块可以提高性能?

任何有关优化删除过程的见解或建议将不胜感激。谢谢!

附加信息:

  • 目录 ($dir) 通常包含大量符号链接。
  • 我愿意使用 Perl 模块或可能提供更好性能的替代方法。
  • 性能基准或示例会特别有帮助。
perl file-io symlink perl-module directory-traversal
1个回答
0
投票

使用

+
而不是
;
,传递给
rm -f
尽可能多的参数,而不是每个文件执行一次:

system("find '$dir' -type l -exec rm -f {} \\+");
© www.soinside.com 2019 - 2024. All rights reserved.