Files

查找與精確大小匹配的文件:4096 字節的倍數

  • November 9, 2012

我在安裝了 WAMP 的本地電腦上執行了幾個 drupal 站點(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 byte bug’的 php bug 報告。我想看看我是否有文件大小是 4096 字節的倍數的文件,但我不知道該怎麼做。

我已經安裝了 gitBash 並且可以通過它使用大多數典型的 linux 工具(find、grep 等),但是我對 linux 不夠熟悉,無法自己弄清楚。一點幫助?

由於您使用的是 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塊的作用。

Write-Hostcmdlet 會將輸出寫入命令視窗。Out-File c:\stuff.txt如果您希望將其放在文本文件中,您可以輕鬆地將其替換為。

引用自:https://serverfault.com/questions/447140