Get-ChildItem
Obtém os itens e os itens filhos de um ou mais locais especificados.
Syntax
Get-ChildItem
[[-Path] <string[]>]
[[-Filter] <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Depth <uint32>]
[-Force]
[-Name]
[-Attributes <FlagsExpression[FileAttributes]>]
[-FollowSymlink]
[-Directory]
[-File]
[-Hidden]
[-ReadOnly]
[-System]
[<CommonParameters>]
Get-ChildItem
[[-Filter] <string>]
-LiteralPath <string[]>
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Depth <uint32>]
[-Force]
[-Name]
[-Attributes <FlagsExpression[FileAttributes]>]
[-FollowSymlink]
[-Directory]
[-File]
[-Hidden]
[-ReadOnly]
[-System]
[<CommonParameters>]
Description
O Get-ChildItem
cmdlet obtém os itens em um ou mais locais especificados. Se o item for um contêiner, ele obtém os itens dentro do contêiner, conhecidos como itens filho. Você pode usar o parâmetro Recurse para obter itens em todos os contêineres filho e usar o parâmetro Depth para limitar o número de níveis a serem recursos.
Get-ChildItem
não exibe diretórios vazios. Quando um Get-ChildItem
comando inclui os parâmetros Depth ou Recurse , os diretórios vazios não são incluídos na saída.
Os locais são expostos Get-ChildItem
por provedores do PowerShell. Um local pode ser um diretório do sistema de arquivos, hive do registro ou um repositório de certificados. Para obter mais informações, consulte about_Providers.
Exemplos
Exemplo 1: Obter itens filho de um diretório do sistema de arquivos
Este exemplo obtém os itens filho de um diretório do sistema de arquivos. Os nomes de arquivo e subdiretórios são exibidos. Para locais vazios, o comando não retorna nenhuma saída e retorna ao prompt do PowerShell.
O Get-ChildItem
cmdlet usa o parâmetro Path para especificar o diretório C:\Test
.
Get-ChildItem
exibe os arquivos e diretórios no console do PowerShell.
Get-ChildItem -Path C:\Test
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/15/2019 08:29 Logs
-a---- 2/13/2019 08:55 26 anotherfile.txt
-a---- 2/12/2019 15:40 118014 Command.txt
-a---- 2/1/2019 08:43 183 CreateTestFile.ps1
-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt
Por padrão Get-ChildItem
, lista o modo (Atributos), LastWriteTime, tamanho do arquivo (Comprimento) e o Nome do item. As letras na propriedade Mode podem ser interpretadas da seguinte maneira:
l
(link)d
(diretório)a
(arquivo morto)r
(somente leitura)h
(oculto)s
(sistema).
Para obter mais informações sobre os sinalizadores de modo, consulte about_Filesystem_Provider.
Exemplo 2: Obter nomes de item filho em um diretório
Este exemplo lista apenas os nomes dos itens em um diretório.
O Get-ChildItem
cmdlet usa o parâmetro Path para especificar o diretório C:\Test
. O parâmetro Name retorna apenas os nomes de arquivo ou diretório do caminho especificado.
Get-ChildItem -Path C:\Test -Name
Logs
anotherfile.txt
Command.txt
CreateTestFile.ps1
ReadOnlyFile.txt
Exemplo 3: Obter itens filho no diretório e subdiretórios atuais
Este exemplo exibe .txt arquivos localizados no diretório atual e seus subdiretórios.
Get-ChildItem -Path C:\Test\*.txt -Recurse -Force
Directory: C:\Test\Logs\Adirectory
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/12/2019 16:16 20 Afile4.txt
-a-h-- 2/12/2019 15:52 22 hiddenfile.txt
-a---- 2/13/2019 13:26 20 LogFile4.txt
Directory: C:\Test\Logs\Backup
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/12/2019 16:16 20 ATextFile.txt
-a---- 2/12/2019 15:50 20 LogFile3.txt
Directory: C:\Test\Logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/12/2019 16:16 20 Afile.txt
-a-h-- 2/12/2019 15:52 22 hiddenfile.txt
-a---- 2/13/2019 13:26 20 LogFile1.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/13/2019 08:55 26 anotherfile.txt
-a---- 2/12/2019 15:40 118014 Command.txt
-a-h-- 2/12/2019 15:52 22 hiddenfile.txt
-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt
O Get-ChildItem
cmdlet usa o parâmetro Path para especificar C:\Test\*.txt
. Path usa o curinga asterisco (*
) para especificar todos os arquivos com a extensão .txt
filename . O parâmetro Recurse pesquisa o diretório Path de seus subdiretórios, conforme mostrado nos títulos Diretório: . O parâmetro Force exibe arquivos ocultos, como hiddenfile.txt
que têm um modo de h.
Exemplo 4: Obter itens filho usando o parâmetro Include
Neste exemplo Get-ChildItem
, usa o parâmetro Include para localizar itens específicos do diretório especificado pelo parâmetro Path .
# When using the -Include parameter, if you don't include an asterisk in the path
# the command returns no output.
Get-ChildItem -Path C:\Test\ -Include *.txt
Get-ChildItem -Path C:\Test\* -Include *.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/13/2019 08:55 26 anotherfile.txt
-a---- 2/12/2019 15:40 118014 Command.txt
-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt
O Get-ChildItem
cmdlet usa o parâmetro Path para especificar o diretório C:\Test. O parâmetro Path inclui um curinga de asterisco à direita (*
) para especificar o conteúdo do diretório.
O parâmetro Include usa um curinga asterisco (*
) para especificar todos os arquivos com a extensão de nome de arquivo.txt.
Quando o parâmetro Include é usado, o parâmetro Path precisa de um curinga de asterisco à direita (*
) para especificar o conteúdo do diretório. Por exemplo, -Path C:\Test\*
.
- Se o parâmetro Recurse for adicionado ao comando , o asterisco à direita (
*
) no parâmetro Path será opcional. O parâmetro Recurse obtém itens do diretório Path e seus subdiretórios. Por exemplo,-Path C:\Test\ -Recurse -Include *.txt
- Se um asterisco à direita (
*
) não estiver incluído no parâmetro Path , o comando não retornará nenhuma saída e retornará ao prompt do PowerShell. Por exemplo,-Path C:\Test\
.
Exemplo 5: Obter itens filho usando o parâmetro Excluir
A saída do exemplo mostra o conteúdo do diretório C:\Test\Logs. A saída é uma referência para os outros comandos que usam os parâmetros Excluir e Recurso .
Get-ChildItem -Path C:\Test\Logs
Directory: C:\Test\Logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/15/2019 13:21 Adirectory
d----- 2/15/2019 08:28 AnEmptyDirectory
d----- 2/15/2019 13:21 Backup
-a---- 2/12/2019 16:16 20 Afile.txt
-a---- 2/13/2019 13:26 20 LogFile1.txt
-a---- 2/12/2019 16:24 23 systemlog1.log
Get-ChildItem -Path C:\Test\Logs\* -Exclude A*
Directory: C:\Test\Logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/15/2019 13:21 Backup
-a---- 2/13/2019 13:26 20 LogFile1.txt
-a---- 2/12/2019 16:24 23 systemlog1.log
O Get-ChildItem
cmdlet usa o parâmetro Path para especificar o diretório C:\Test\Logs
.
O parâmetro Exclude usa o curinga asterisco (*
) para especificar todos os arquivos ou diretórios que começam com A ou um são excluídos da saída.
Quando o parâmetro Exclude é usado, um asterisco à direita (*
) no parâmetro Path é opcional. Por exemplo, -Path C:\Test\Logs
ou -Path C:\Test\Logs\*
.
- Se um asterisco à direita (
*
) não estiver incluído no parâmetro Path , o conteúdo do parâmetro Path será exibido. As exceções são nomes de arquivo ou subdiretórios que correspondem ao valor do parâmetro Exclude . - Se um asterisco à direita (
*
) estiver incluído no parâmetro Path , o comando será recursado nos subdiretórios do parâmetro Path . As exceções são nomes de arquivo ou subdiretórios que correspondem ao valor do parâmetro Exclude . - Se o parâmetro Recurse for adicionado ao comando, a saída de recursão será a mesma se o parâmetro Path incluir ou não um asterisco à direita (
*
).
Exemplo 6: Obter as chaves do Registro de um hive do registro
Este exemplo obtém todas as chaves do Registro de HKEY_LOCAL_MACHINE\HARDWARE
.
Get-ChildItem
usa o parâmetro Path para especificar a chave HKLM:\HARDWARE
do Registro . O caminho do hive e o nível superior das chaves do Registro são exibidos no console do PowerShell.
Para obter mais informações, consulte about_Registry_Provider.
Get-ChildItem -Path HKLM:\HARDWARE
Hive: HKEY_LOCAL_MACHINE\HARDWARE
Name Property
---- --------
ACPI
DESCRIPTION
DEVICEMAP
RESOURCEMAP
UEFI
Get-ChildItem -Path HKLM:\HARDWARE -Exclude D*
Hive: HKEY_LOCAL_MACHINE\HARDWARE
Name Property
---- --------
ACPI
RESOURCEMAP
O primeiro comando mostra o conteúdo da chave do HKLM:\HARDWARE
Registro. O parâmetro Exclude informa Get-ChildItem
para não retornar nenhuma subchave que comece com D*
. Atualmente, o parâmetro Exclude só funciona em subchaves, não em propriedades de item.
Exemplo 7: Obter todos os certificados com autoridade de assinatura de código
Este exemplo obtém cada certificado na unidade Cert do PowerShell: que tem autoridade de assinatura de código.
O Get-ChildItem
cmdlet usa o parâmetro Path para especificar o provedor Cert: . O parâmetro Recurse pesquisa o diretório especificado por Path e seus subdiretórios. O parâmetro CodeSigningCert obtém apenas certificados que têm autoridade de assinatura de código.
Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert
Para obter mais informações sobre o provedor de certificados e a unidade Cert: , consulte about_Certificate_Provider.
Exemplo 8: Obter itens usando o parâmetro Depth
Este exemplo exibe os itens em um diretório e seus subdiretórios. O parâmetro Depth determina o número de níveis de subdiretório a serem incluídos na recursão. Diretórios vazios são excluídos da saída.
Get-ChildItem -Path C:\Parent -Depth 2
Directory: C:\Parent
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/14/2019 10:24 SubDir_Level1
-a---- 2/13/2019 08:55 26 file.txt
Directory: C:\Parent\SubDir_Level1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/14/2019 10:24 SubDir_Level2
-a---- 2/13/2019 08:55 26 file.txt
Directory: C:\Parent\SubDir_Level1\SubDir_Level2
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2/14/2019 10:22 SubDir_Level3
-a---- 2/13/2019 08:55 26 file.txt
O Get-ChildItem
cmdlet usa o parâmetro Path para especificar C:\Parent. O parâmetro Depth especifica dois níveis de recursão. Get-ChildItem
exibe o conteúdo do diretório especificado pelo parâmetro Path e os dois níveis de subdiretórios.
Exemplo 9: Obtendo informações de link rígido
No PowerShell 6.2, uma exibição alternativa foi adicionada para obter informações de link rígido.
Get-ChildItem -Path C:\PathContainingHardLink | Format-Table -View childrenWithHardLink
Exemplo 10: Saída para sistemas operacionais não Windows
No PowerShell 7.1 em sistemas Unix, o fornece saída semelhante ao Get-ChildItem
Unix:
PS> Get-ChildItem /etc/r*
Directory: /etc
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
drwxr-xr-x root wheel 9/30/2019 19:19 128 racoon
-rw-r--r-- root wheel 9/26/2019 18:20 1560 rc.common
-rw-r--r-- root wheel 7/31/2017 17:30 1560 rc.common~previous
-rw-r--r-- root wheel 9/27/2019 20:34 5264 rc.netboot
lrwxr-xr-x root wheel 11/8/2019 15:35 22 resolv.conf -> /private/var/run/resolv.conf
-rw-r--r-- root wheel 10/23/2019 17:41 0 rmtab
-rw-r--r-- root wheel 10/23/2019 17:41 1735 rpc
-rw-r--r-- root wheel 7/25/2017 18:37 1735 rpc~previous
-rw-r--r-- root wheel 10/23/2019 18:42 891 rtadvd.conf
-rw-r--r-- root wheel 8/24/2017 21:54 891 rtadvd.conf~previous
As novas propriedades que agora fazem parte da saída são:
- UnixMode são as permissões de arquivo representadas em um sistema Unix
- O usuário é o proprietário do arquivo
- Group é o proprietário do grupo
- Tamanho é o tamanho do arquivo ou diretório, conforme representado em um sistema Unix
Observação
Esse recurso foi movido de experimental para base no PowerShell 7.1.
Exemplo 11 – Obter o destino do link para um ponto de junção
O dir
comando no Shell de Comando do Windows mostra o local de destino de um ponto de junção do sistema de arquivos. No PowerShell, essas informações estão disponíveis na propriedade LinkTarget do objeto filesystem retornado por Get-ChildItem
e são exibidas na saída padrão.
PS D:\> New-Item -ItemType Junction -Name tmp -Target $env:TEMP
PS D:\> Get-ChildItem | select name,LinkTarget
Name LinkTarget
---- ----------
tmp C:\Users\user1\AppData\Local\Temp
PS D:\> Get-ChildItem
Directory: D:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
l---- 12/16/2021 9:29 AM tmp -> C:\Users\user1\AppData\Local\Temp
Parâmetros
-Attributes
Obtém os arquivos e pastas com os atributos especificados. Esse parâmetro dá suporte a todos os atributos e permite que você especifique combinações complexas de atributos.
Por exemplo, para obter arquivos de fora do sistema (não diretórios) que sejam criptografados ou compactados, digite:
Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed
Para localizar arquivos e pastas com atributos comumente usados, use o parâmetro Attributes . Ou os parâmetros Directory, File, Hidden, ReadOnly e System.
O parâmetro Attributes dá suporte às seguintes propriedades:
- Arquivar
- Compactado
- Dispositivo
- Diretório
- Criptografado
- Oculto
- IntegrityStream
- Normal
- NoScrubData
- NotContentIndexed
- Offline
- ReadOnly (somente-leitura)
- ReparsePoint
- SparseFile
- System
- Temporário
Para obter uma descrição desses atributos, consulte a Enumeração FileAttributes.
Para combinar atributos, use os seguintes operadores:
!
(NOT)+
(AND),
(OR)
Não use espaços entre um operador e seu atributo. Espaços são aceitos após vírgulas.
Para atributos comuns, use as seguintes abreviações:
D
(Diretório)H
(Oculto)R
(Somente leitura)S
(Sistema)
Type: | FlagsExpression<T>[FileAttributes] |
Accepted values: | Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Depth
Esse parâmetro foi adicionado ao PowerShell 5.0 e permite controlar a profundidade da recursão. Por padrão, Get-ChildItem
exibe o conteúdo do diretório pai. O parâmetro Depth determina o número de níveis de subdiretório incluídos na recursão e exibe o conteúdo.
Por exemplo, Depth 2
inclui o diretório do parâmetro Path , o primeiro nível de subdiretórios e o segundo nível de subdiretórios. Por padrão, nomes de diretório e nomes de arquivo são incluídos na saída.
Observação
Em um computador Windows do PowerShell ou cmd.exe, você pode exibir uma exibição gráfica de uma estrutura de diretório com o comando tree.com .
Type: | UInt32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Directory
Para obter uma lista de diretórios, use o parâmetro Directory ou o parâmetro Attributes com a propriedade Directory . Você pode usar o parâmetro Recurse com o Directory.
Type: | SwitchParameter |
Aliases: | ad, d |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Especifica uma matriz de um ou mais padrões de cadeia de caracteres a serem correspondidos à medida que o cmdlet obtém itens filho. Qualquer item correspondente é excluído da saída. Insira um elemento ou padrão de caminho, como *.txt
ou A*
.
Caracteres curinga são aceitos.
Um asterisco à direita (*
) no parâmetro Path é opcional. Por exemplo, -Path C:\Test\Logs
ou -Path C:\Test\Logs\*
. Se um asterisco à direita (*
) for incluído, o comando será recursado nos subdiretórios do parâmetro Path . Sem o asterisco (*
), o conteúdo do parâmetro Path é exibido. Mais detalhes estão incluídos no Exemplo 5 e na seção Anotações.
Os parâmetros Include e Exclude podem ser usados juntos. No entanto, as exclusões são aplicadas após as inclusões, o que pode afetar a saída final.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-File
Para obter uma lista de arquivos, use o parâmetro File . Você pode usar o parâmetro Recurse com File.
Type: | SwitchParameter |
Aliases: | af |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Especifica um filtro para qualificar o parâmetro Path . O provedor FileSystem é o único provedor do PowerShell instalado que dá suporte a filtros. Os filtros são mais eficientes do que outros parâmetros. O provedor aplica o filtro quando o cmdlet obtém os objetos em vez de fazer com que o PowerShell filtre os objetos após serem recuperados. A cadeia de caracteres de filtro é passada para a API do .NET para enumerar arquivos. A API dá suporte apenas a curingas *
e ?
.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-FollowSymlink
Por padrão, o Get-ChildItem
cmdlet exibe links simbólicos para diretórios encontrados durante a recursão, mas não se recursa neles. Use o parâmetro FollowSymlink para pesquisar os diretórios direcionados a esses links simbólicos. O FollowSymlink é um parâmetro dinâmico e tem suporte apenas no provedor FileSystem .
Esse parâmetro foi introduzido no PowerShell 6.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Permite que o cmdlet obtenha itens que, de outra forma, não podem ser acessados pelo usuário, como arquivos ocultos ou do sistema. O parâmetro Force não substitui as restrições de segurança. A implementação varia entre os provedores. Para obter mais informações, consulte about_Providers.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Hidden
Para obter apenas itens ocultos, use o parâmetro Hidden ou o parâmetro Attributes com a propriedade Hidden . Por padrão, Get-ChildItem
não exibe itens ocultos. Use o parâmetro Force para obter itens ocultos.
Type: | SwitchParameter |
Aliases: | ah, h |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Especifica uma matriz de um ou mais padrões de cadeia de caracteres a serem correspondidos à medida que o cmdlet obtém itens filho. Qualquer item correspondente é incluído na saída. Insira um elemento ou padrão de caminho, como "*.txt"
.
Caracteres curinga são permitidos. O parâmetro Include só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*
, em que o caractere curinga especifica o conteúdo do C:\Windows
diretório.
Os parâmetros Include e Exclude podem ser usados juntos. No entanto, as exclusões são aplicadas após as inclusões, o que pode afetar a saída final.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Especifica um caminho para um ou mais locais. O valor de LiteralPath é usado exatamente como ele é digitado. Nenhum caractere é interpretado como caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples dizem ao PowerShell para não interpretar nenhum caractere como sequências de escape.
Para obter mais informações, consulte about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Obtém apenas os nomes dos itens no local. A saída é um objeto de cadeia de caracteres que pode ser enviado pelo pipeline para outros comandos. Caracteres curinga são permitidos.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Path
Especifica um caminho para um ou mais locais. Você pode usar curingas. O local padrão é o diretório atual (.
).
Type: | String[] |
Position: | 0 |
Default value: | Current directory |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-ReadOnly
Para obter apenas itens somente leitura, use o parâmetro ReadOnly ou a propriedade ReadOnly do parâmetro Attributes.
Type: | SwitchParameter |
Aliases: | ar |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Recurse
Obtém os itens nos locais especificados e em todos os itens filhos dos locais.
Type: | SwitchParameter |
Aliases: | s |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-System
Obtém apenas arquivos e diretórios do sistema. Para obter apenas arquivos e pastas do sistema, use o parâmetro System ou a propriedade System do parâmetro Attributes.
Type: | SwitchParameter |
Aliases: | as |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Você pode canalizar uma cadeia de caracteres que contém um caminho para Get-ChildItem
.
Saídas
O tipo de objeto que Get-ChildItem
retorna é determinado pelos objetos no caminho da unidade do provedor.
Se você usar o parâmetro Name , Get-ChildItem
retornará os nomes de objeto como cadeias de caracteres.
Observações
Get-ChildItem
pode ser executado usando qualquer um dos aliases internos,ls
,dir
egci
. Para obter mais informações, consulte about_Aliases.Get-ChildItem
não obtém itens ocultos por padrão. Para obter itens ocultos, use o parâmetro Force.- O
Get-ChildItem
cmdlet foi projetado para funcionar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, digiteGet-PSProvider
. Para obter mais informações, consulte about_Providers.