Linux命令从所有目录和子目录中获取所有文件、文件的大小和路径

Linux命令从所有目录和子目录中获取所有文件、文件的大小和路径

如何在 PHP 代码中使用 Linux 命令从所有目录和子目录中获取所有文件名及其大小和文件路径。

我正在运行扫描代码。我需要在其中获取文件并执行扫描。问题是,当我在 Linux 服务器上运行时,执行扫描需要很长时间。因此,我想到将 linux 命令添加到我的 php 脚本中,并检查如果服务器是 linux,那么可以使用这些 coomands 而不是我的函数,从而提高扫描速度。

答案1

天真的解决方案:

$files = system('find / -printf "%p %b\n"');

解释:

  • $files = system(...)将执行指定的 shell 命令并将输出存储在变量中$files
  • find / -printf("%p %b\n")find命令将列出从文件系统 root 开始的所有文件/。这些-printf选项指示find根据指定的格式格式化其输出。格式字符串"%p %b\n"将导致find输出文件的路径 ( %p),后跟一个空格,然后是 512 字节块中的文件大小 ( %b),最后是换行符 ( \n)。这些-printf选项还支持%k格式说明符,它将以 1KB 块的形式打印文件的大小。

相关内容