поиск файлов, соответствующих точному размеру: кратному 4096 байт [duplicate]

На этот вопрос уже есть ответ здесь:

У меня есть несколько сайтов 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.

Некоторые исследования привели меня к сообщению об ошибке php '4096 byte bug'. Я хотел бы проверить, есть ли у меня файлы, размер которых кратен 4096 байтам, но не знаю, как это сделать.

У меня установлен gitBash и я могу использовать большинство типичных инструментов linux через него (find, grep, etc), но я недостаточно знаком с linux, чтобы разобраться в этом самостоятельно. Небольшая помощь?

2
задан 9 November 2012 в 18:18
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 Блок выполняет.

Командлет Write-Host записывает вывод в командное окно. Вы можете легко заменить это на Out-File c: \ stuff.txt , если вы предпочитаете хранить его в текстовом файле.

4
ответ дан 3 December 2019 в 10:09

Теги

Похожие вопросы