Existe um utilitário de linha de comando do Windows para listar os maiores arquivos que excedem o tamanho específico em subdiretórios?

17

Gostaria de poder encontrar caminhos completos de arquivos em uma árvore de diretórios que excedam um tamanho específico (por exemplo, 10MB).

Atualmente ciente do Diruso da Microsoft (parte de Ferramentas de Suporte do Windows XP Service Pack 2 ) que faz o que eu quero exceto somente lista os tamanhos de diretório em vez de arquivos.

    
por Umber Ferrule 02.11.2009 / 16:56

8 respostas

26
forfiles /P D:\ /M *.* /S /D +"01/17/2012"  /C "cmd /c if @fsize gtr 209715200 echo @path @fsize @fdate @ftime"

fará a varredura de D: \ e de seus subdiretórios, procurará todos os arquivos cujas datas da última modificação sejam maiores que "17-JAN-2012" e cujos tamanhos sejam maiores ou iguais a 200MB e depois imprima os detalhes.

forfiles está incluído em alguns servidores Windows, mas não por padrão no Windows XP. Você pode extraí-lo do download "Windows Server 2003 Resource Kit" no link (embora ele diz que é para o Windows Server, ele é executado no Win XP sem problemas).

    
por 19.01.2012 / 09:11
6

Isso soa como um trabalho para o PowerShell

get-childitem

Navegue até o diretório em questão e verifique as propriedades com:

get-childitem | get-member

length e FullName parecem interessantes, por exemplo:

get-childitem |ft fullname, length -auto

Depois de ter dominado o básico, tente filtrar com uma instrução where.

get-childitem | where-object {$_.length -gt 10000} |ft fullname, length -auto

Experiência com 100000

    
por 03.11.2009 / 15:54
3

A porta de utilitários do Linux em UnxUtils contém o comando encontrar do Linux.

Você deve renomear find.exe para outra coisa, por exemplo, xfind.exe, já que find é uma função interna do Prompt de Comando do Windows. Você pode então encontrar todos os arquivos maiores que 1000000 bytes por:

xfind directory -size +1000000 -print

Aqui está o documento para o comando do Linux , mas não sei exatamente como foi implementado UnxUtils e para qual versão do find.

    
por 02.11.2009 / 17:24
2

Pegue o Command Console LE (que acabei recomendando muito recentemente), um substituição gratuita para cmd.exe com muitos recursos extras, tem um comando para isso: PDIR

pdir /s /(fpn z) /[s10485760,]
  • /s significa recursivamente, execute o comando no diretório que você deseja pesquisar.
  • /(fpn z) é o formato para exibir os resultados, aqui: fullpathfullname size
  • /[s10485760,] significa tamanho = 10 MB ou maior
por 02.11.2009 / 18:05
1

O comando de localização dos utilitários cygwin faz isso. Para sua exigência

find full paths of files in a directory tree that exceed a specific size (say 10MB).

isso dá o resultado:

find -size +10M -type f -printf "%p %s\n"

-size +10M fornece "objetos" maiores que 10 megabytes

-type f fornece apenas arquivos

-printf imprime os arquivos encontrados, %p é caminho, %s é tamanho (em bytes) e \n é a nova linha.

    
por 10.11.2009 / 22:03
1

Acabei de encontrar a ferramenta de linha de comando, Disksum , que parece ser semelhante a diruse , mas fornece duas formas de saída:

  • classificado por contagens de arquivos por diretório (crescente)
  • classificado por tamanho de diretório (crescente)
por 26.02.2010 / 13:54
1

Acredito que o uso dessa solução seja mais preciso com a descrição:

Faça o download da linha de comando executável sfk.exe em link

Use-o assim

skf.exe list -big

Exemplo de saída (abreviada):

[listing 50 of 78 files by size:]
        3951 mens\noname_30.mht
        3996 mens\noname_14.mht
        3996 mens\noname_25.mht
        4060 mens\noname_24.mht
        4263 mens\noname_31.mht
        4701 mens\noname_1.mht
       14568 Thumbnail Restore.zip
       45056 netmeter.exe
     [...]
     12337752 rktools.exe
     16826024 sp35378.exe
     16926496 jre-6u30-windows-i586.exe
     19480227 SugarCE-6.2.4.zip
     21073936 vlc-1.1.11-win32.exe
     22083184 EasyPHP-5.3.8.1-setup.exe
     25517642 MPSOFTWARE.phpDesigner.v8.0.0.145-CRD.rar
     31085033 phpdesigner8usb.zip
     48835640 netbeans 7.exe
     58900704 ZendServer-CE-php-5.2.17-5.6.0-Windows_x86.exe    
     491538432 53400105.iso

Se você deseja apenas os 10 principais arquivos maiores, use:

skf.exe list -big=10

Você pode personalizá-lo seguindo as instruções de: link

    
por 26.01.2012 / 18:12
-2

Eu sei que a questão é sobre linha de comando, mas essa pergunta continua aparecendo no Google, então adicionando outra maneira simples - via Explorer.

  1. abra o local (um disco ou uma pasta) onde você deseja procurar arquivos grandes no Windows Explorer
  2. na caixa de pesquisa na parte superior direita, digite "tamanho: gigantesco" (a caixa sugerirá automaticamente a sintaxe e outras opções possíveis)
por 27.08.2013 / 01:47