查找与精确大小匹配的文件:4096 字节的倍数

查找与精确大小匹配的文件:4096 字节的倍数

我在本地计算机上运行了几个 drupal 站点,并安装了 WAMP(apache 2.2.17、php 5.3.4 和 mysql 5.1.53)。每当我尝试访问管理页面时,php 进程似乎都会死机。来自 apache_error.log:

[Fri Nov 09 10:43:26 2012] [notice] Parent: child process exited with status 255 -- Restarting.
[Fri Nov 09 10:43:26 2012] [notice] Apache/2.2.17 (Win32) PHP/5.3.4 configured -- resuming normal operations
[Fri Nov 09 10:43:26 2012] [notice] Server built: Oct 24 2010 13:33:15
[Fri Nov 09 10:43:26 2012] [notice] Parent: Created child process 9924
[Fri Nov 09 10:43:26 2012] [notice] Child 9924: Child process is running
[Fri Nov 09 10:43:26 2012] [notice] Child 9924: Acquired the start mutex.
[Fri Nov 09 10:43:26 2012] [notice] Child 9924: Starting 64 worker threads.
[Fri Nov 09 10:43:26 2012] [notice] Child 9924: Starting thread to listen on port 80.

经过一番研究,我发现了一个关于‘4096 字节错误’。我想看看是否有任何文件大小是 4096 字节的倍数的文件,但我不知道如何做到这一点。

我已经安装了 gitBash,可以使用最多可以通过它找到典型的 Linux 工具(find、grep 等),但我对 Linux 不够熟悉,无法自己弄清楚。有什么帮助吗?

答案1

由于您使用的是 Windows,因此可以使用 PowerShell 执行此操作

Get-ChildItem C:\PathToTopDirectory -recurse | ForEach-Object {    
  if(($_.length % 4096 -eq 0) -and (! $_.PSIsContainer)) {Write-Host $_.FullName}    
}

它的作用是获取 Get-ChildItem 命令中路径下的所有内容的列表并评估每个对象。由于文件夹没有大小,我们希望排除它们,这就是它的作用-and (! $_.PSIsContainer)

然后我们只需要查看文件大小(以字节为单位)(即长度属性,除以 4096 是否得到余数为零,这意味着该文件是 4096 或其倍数。这就是块的作用$_.length % 4096 -eq 0

cmdletWrite-Host会将输出写入命令窗口。Out-File c:\stuff.txt如果您希望将其保存在文本文件中,则可以轻松将其替换为。

相关内容