Quick Tip 9 – Listando os Diretórios Vazios com PowerShell

Está dica rápida vem de um pedido de ajuda que recebi no Twitter.
A questão foi simples assim: “Crespi tenho um diretório de backups do SQL Server no Linux e preciso descobrir os diretórios que estão vazios. Como resolver?”

Simples! Use o PowerShell a seu favor.
Você pode utilizar o método GetFileSystemInfos() do do Namespace System.IO.
Este método retorna um array que representa todos os arquivos e subdiretórios.

Para auxiliar na compreensão, execute o comando abaixo:

$dirBackup = gci /mnt/sqlbackup/
$dirBackup.GetFileSystemInfos()

O retorno deste comando será uma lista de dados de diversos arquivos do diretório /sqlbackup. Quando houver arquivos ou subdiretórios os mesmos serão listados, quando não houver o retorno será nulo. 

A imagem abaixo exibe o retorno de um diretório vazio.

A partir das informações acima, fica fácil compreender o script que segue:

$dirBackup = gci -Path /mnt/sqlbackup/ -Recurse -Directory
$dirBackup | ForEach -Process {
if ($false -eq $_.GetFileSystemInfos()) { $_.FullName}
}

Aqui fica a dica …
O oposto também é válido, ou seja, para descobrir os diretórios com conteúdo basta trocar o teste de $false para $true. 

Era isso PessoALL!
Espero ter ajudado com a essa dica rápida e que pode ser implementada para diferentes tipos de testes.

Abraço, Rodrigo

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.