다음을 통해 공유


Get-ChildItem

하나 이상의 지정된 위치에서 항목 및 하위 항목을 가져옵니다.

Syntax

Get-ChildItem
   [[-Path] <string[]>]
   [[-Filter] <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-UseTransaction]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]
Get-ChildItem
   [[-Filter] <string>]
   -LiteralPath <string[]>
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-UseTransaction]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]

Description

cmdlet은 Get-ChildItem 하나 이상의 지정된 위치에 있는 항목을 가져옵니다. 항목이 컨테이너인 경우 컨테이너 내에 있는 항목(하위 항목)을 가져옵니다. Recurse 매개 변수를 사용하여 모든 자식 컨테이너에서 항목을 가져와서 Depth 매개 변수를 사용하여 재귀할 수준 수를 제한할 수 있습니다.

Get-ChildItem 는 빈 디렉터리를 표시하지 않습니다. Get-ChildItem 명령에 Depth 또는 Recurse 매개 변수가 포함된 경우 빈 디렉터리는 출력에 포함되지 않습니다.

위치는 PowerShell 공급자에 의해 노출 Get-ChildItem 됩니다. 위치는 파일 시스템 디렉터리, 레지스트리 하이브 또는 인증서 저장소일 수 있습니다. 자세한 내용은 about_Providers를 참조하세요.

예제

예제 1: 파일 시스템 디렉터리에서 자식 항목 가져오기

이 예제에서는 파일 시스템 디렉터리에서 자식 항목을 가져옵니다. 파일 이름 및 하위 디렉터리 이름이 표시됩니다. 빈 위치의 경우 명령은 출력을 반환하지 않고 PowerShell 프롬프트로 돌아갑니다.

cmdlet은 Get-ChildItemPath 매개 변수를 사용하여 디렉터리를 지정합니다 C:\Test. Get-ChildItem 는 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

기본적으로 Get-ChildItem 모드(특성), LastWriteTime, 파일 크기(길이) 및 항목의 이름을 나열합니다. Mode 속성의 문자는 다음과 같이 상호 작용할 수 있습니다.

  • l (링크)
  • d (디렉터리)
  • a (보관)
  • r (읽기 전용)
  • h (숨김)
  • s (시스템).

모드 플래그에 대한 자세한 내용은 about_Filesystem_Provider 참조하세요.

예제 2: 디렉터리에서 자식 항목 이름 가져오기

이 명령은 디렉터리에 있는 항목의 이름만 나열합니다.

cmdlet은 Get-ChildItemPath 매개 변수를 사용하여 디렉터리를 지정합니다 C:\Test. Name 매개 변수는 지정된 경로의 파일 또는 디렉터리 이름만 반환합니다.

Get-ChildItem -Path C:\Test -Name

Logs
anotherfile.txt
Command.txt
CreateTestFile.ps1
ReadOnlyFile.txt

예제 3: 현재 디렉터리 및 하위 디렉터리에서 자식 항목 가져오기

다음은 현재 디렉터리와 해당 하위 디렉터리에 있는 .txt 파일을 표시하는 예제입니다.

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

cmdlet은 Get-ChildItemPath 매개 변수를 사용하여 를 지정 C:\Test\*.txt합니다. 경로 는 별표(*) 와일드카드를 사용하여 파일 이름 확장명을 가진 모든 파일을 .txt지정합니다. Recurse 매개 변수는 디렉터리: 제목에 표시된 대로 경로 디렉터리의 하위 디렉터리를 검색합니다. Force 매개 변수는 h 모드가 있는hiddenfile.txt 같은 숨겨진 파일을 표시합니다.

예제 4: Include 매개 변수를 사용하여 자식 항목 가져오기

이 예제 Get-ChildItem 에서는 Include 매개 변수를 사용하여 Path 매개 변수로 지정된 디렉터리에서 특정 항목을 찾습니다.

# When using the -Include parameter, if you do not 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

cmdlet은 Get-ChildItemPath 매개 변수를 사용하여 C:\Test 디렉터리를 지정합니다. Path 매개 변수에는 디렉터리의 내용을 지정하는 후행 별표(*) 와일드카드가 포함됩니다. Include 매개 변수는 별표(*) 와일드카드를 사용하여 파일 이름 확장명을 가진 모든 파일을 .txt지정합니다.

Include 매개 변수를 사용하는 경우 Path 매개 변수에는 디렉터리의 내용을 지정하는 후행 별표(*) 와일드카드가 필요합니다. -Path C:\Test\*)을 입력합니다.

  • Recurse 매개 변수가 명령에 추가되면 Path 매개 변수의 후행 별표(*)는 선택 사항입니다. Recurse 매개 변수는 Path 디렉터리와 해당 하위 디렉터리에서 항목을 가져옵니다. 예를 들어 -Path C:\Test\ -Recurse -Include *.txt
  • 후행 별표(*)가 Path 매개 변수에 포함되지 않은 경우 명령은 출력을 반환하지 않고 PowerShell 프롬프트로 돌아갑니다. -Path C:\Test\)을 입력합니다.

예제 5: Exclude 매개 변수를 사용하여 자식 항목 가져오기

이 예제의 출력은 C:\Test\Logs 디렉터리의 내용을 보여 줍니다. 출력은 ExcludeRecurse 매개 변수를 사용하는 다른 명령에 대한 참조입니다.

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

cmdlet은 Get-ChildItemPath 매개 변수를 사용하여 디렉터리를 지정합니다 C:\Test\Logs. Exclude 매개 변수는 별표(*) 와일드카드를 사용하여 A 또는 로 시작하는 파일 또는 디렉터리를 출력에서 제외하도록 지정합니다.

Exclude 매개 변수를 사용하는 경우 Path 매개 변수의 후행 별표(*)는 선택 사항입니다. 예를 들어 -Path C:\Test\Logs 또는 -Path C:\Test\Logs\*입니다.

  • 후행 별표(*)가 Path 매개 변수에 포함되지 않으면 Path 매개 변수의 내용이 표시됩니다. 예외는 Exclude 매개 변수의 값과 일치하는 파일 이름 또는 하위 디렉터리 이름입니다.
  • Path 매개 변수에 후행 별표(*)가 포함된 경우 명령은 Path 매개 변수의 하위 디렉터리로 재귀됩니다. 예외는 Exclude 매개 변수의 값과 일치하는 파일 이름 또는 하위 디렉터리 이름입니다.
  • Recurse 매개 변수가 명령에 추가되면 Path 매개 변수에 후행 별표(*)가 포함되어 있는지 여부에 관계없이 재귀 출력이 동일합니다.

예제 6: 레지스트리 하이브에서 레지스트리 키 가져오기

이 명령은 레지스트리 키에서 HKEY_LOCAL_MACHINE\HARDWARE 모든 레지스트리 키를 가져옵니다.

Get-ChildItem 에서는 Path 매개 변수를 사용하여 레지스트리 키를 HKLM:\HARDWARE지정합니다. Hive의 경로 및 최상위 레지스트리 키는 PowerShell 콘솔에 표시됩니다.

자세한 내용은 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

첫 번째 명령은 레지스트리 키의 HKLM:\HARDWARE 내용을 보여 줍니다. Exclude 매개 변수는 Get-ChildItem 로 시작하는 D*하위 키를 반환하지 않도록 지시합니다. 현재 Exclude 매개 변수는 항목 속성이 아닌 하위 키에서만 작동합니다.

예제 7: 코드 서명 기관을 사용하여 모든 인증서 가져오기

이 명령은 코드 서명 권한이 있는 PowerShell 인증서: 드라이브의 각 인증서를 가져옵니다.

cmdlet은 Get-ChildItemPath 매개 변수를 사용하여 Cert: 공급자를 지정합니다. Recurse 매개 변수는 Path 및 해당 하위 디렉터리로 지정된 디렉터리를 검색합니다. CodeSigningCert 매개 변수는 코드 서명 권한이 있는 인증서만 가져옵니다.

Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert

인증서 공급자 및 Cert: 드라이브에 대한 자세한 내용은 about_Certificate_Provider 참조하세요.

예제 8: Depth 매개 변수를 사용하여 항목 가져오기

이 명령은 디렉터리와 해당 하위 디렉터리의 항목을 표시합니다. Depth 매개 변수는 재귀에 포함할 하위 디렉터리 수준의 수를 결정합니다. 빈 디렉터리 출력에서 제외됩니다.

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

cmdlet은 Get-ChildItemPath 매개 변수를 사용하여 C:\Parent를 지정합니다. Depth 매개 변수는 두 가지 재귀 수준을 지정합니다. Get-ChildItemPath 매개 변수로 지정된 디렉터리의 내용과 두 수준의 하위 디렉터리를 표시합니다.

매개 변수

-Attributes

지정된 특성을 갖는 파일 및 폴더를 가져옵니다. 이 매개 변수는 모든 특성을 지원하며 복잡한 특성 조합을 지정할 수 있도록 합니다.

예를 들어 암호화되거나 압축된 비시스템 파일(디렉터리 아님)을 가져오려면 다음과 같이 입력하세요.

Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed

일반적으로 사용되는 특성이 있는 파일 및 폴더를 찾으려면 Attributes 매개 변수를 사용합니다. 또는 디렉터리, 파일, 숨김, ReadOnlySystem 매개 변수입니다.

Attributes 매개 변수는 다음 속성을 지원합니다.

  • 보관
  • Compressed
  • 디바이스
  • 디렉터리
  • 암호화됨
  • 숨김
  • IntegrityStream
  • 보통
  • NoScrubData
  • NotContentIndexed
  • 오프라인
  • 읽기 전용
  • ReparsePoint
  • SparseFile
  • 시스템
  • 임시

이러한 특성에 대한 설명은 FileAttributes 열거형을 참조하세요.

특성을 결합하려면 다음 연산자를 사용합니다.

  • ! (NOT)
  • + (AND)
  • , (OR)

연산자와 해당 특성 사이에 공백을 사용하지 마세요. 공백은 쉼표 다음에 허용됩니다.

일반적인 특성의 경우 다음 약어를 사용합니다.

  • D (디렉터리)
  • H (숨김)
  • R (읽기 전용)
  • S (시스템)
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

이 매개 변수는 PowerShell 5.0에 추가되었으며 재귀 깊이를 제어할 수 있습니다. 기본적으로 Get-ChildItem 는 부모 디렉터리의 내용을 표시합니다. Depth 매개 변수는 재귀에 포함된 하위 디렉터리 수준의 수를 결정하고 내용을 표시합니다.

예를 들어 Depth 2 에는 Path 매개 변수의 디렉터리, 첫 번째 하위 디렉터리 수준 및 두 번째 수준의 하위 디렉터리가 포함됩니다. 기본적으로 디렉터리 이름과 파일 이름은 출력에 포함됩니다.

참고

PowerShell 또는 cmd.exeWindows 컴퓨터에서 tree.com 명령을 사용하여 디렉터리 구조의 그래픽 보기를 표시할 수 있습니다.

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Directory

디렉터리 목록을 얻으려면 Directory 속성과 함께 Directory 매개 변수 또는 Attributes 매개 변수를 사용합니다. 디렉터리에서 Recurse 매개 변수를 사용할 수 있습니다.

Type:SwitchParameter
Aliases:ad, d
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

문자열 배열로 이 cmdlet이 작업에서 제외하는 속성 또는 속성을 지정합니다. 이 매개 변수 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt 또는 )을 A*입력합니다. 와일드카드 문자가 허용됩니다.

Path 매개 변수의 후행 별표(*)는 선택 사항입니다. 예를 들어 -Path C:\Test\Logs 또는 -Path C:\Test\Logs\*입니다. 후행 별표(*)가 포함된 경우 명령은 Path 매개 변수의 하위 디렉터리로 재귀됩니다. 별표(*)가 없으면 Path 매개 변수의 내용이 표시됩니다. 자세한 내용은 예제 5 및 참고 섹션에 포함되어 있습니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-File

파일 목록을 얻으려면 File 매개 변수를 사용합니다. Recurse 매개 변수를 File과 함께 사용할 수 있습니다.

Type:SwitchParameter
Aliases:af
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Filter

Path 매개 변수를 한정할 필터를 지정합니다. FileSystem 공급자는 필터 사용을 지원하는 유일한 설치된 PowerShell 공급자입니다. 필터는 검색된 후 PowerShell이 개체를 필터링하지 않고 cmdlet이 개체를 가져오면 공급자가 적용하기 때문에 다른 매개 변수보다 효율적입니다. 필터 문자열은 파일을 열거하기 위해 .NET API에 전달됩니다. 해당 API는 *? 와일드카드만 지원합니다.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

cmdlet이 다른 방법으로는 사용자가 액세스할 수 없는 항목(예: 숨겨진 파일 또는 시스템 파일)을 가져올 수 있습니다. Force 매개 변수는 보안 제한을 재정의하지 않습니다. 구현은 공급자 간에 차이가 있습니다. 자세한 내용은 about_Providers를 참조하세요.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Hidden

숨겨진 항목만 얻으려면 Hidden 속성과 함께 Hidden 매개 변수 또는 Attributes 매개 변수를 사용합니다 . 기본적으로 는 Get-ChildItem 숨겨진 항목을 표시하지 않습니다. Force 매개 변수를 사용하여 숨겨진 항목을 가져옵니다.

Type:SwitchParameter
Aliases:ah, h
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

문자열 배열로 이 cmdlet이 작업에 포함하는 항목 또는 항목을 지정합니다. 이 매개 변수 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력합니다. 와일드카드 문자를 사용할 수 있습니다. Include 매개 변수는 명령이 와 같은 C:\Windows\*항목의 내용을 포함하는 경우에만 유효합니다. 여기서 와일드카드 문자는 디렉터리의 내용을 지정합니다C:\Windows.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

하나 이상의 위치에 대한 경로를 지정합니다. LiteralPath의 값은 입력된 대로 정확히 사용됩니다. 어떠한 문자도 와일드카드로 해석되지 않습니다. 이스케이프 문자가 포함된 경로는 작은따옴표로 묶으세요. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

자세한 내용은 about_Quoting_Rules 참조하세요.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

위치에 있는 항목의 이름만 가져옵니다. 출력은 파이프라인을 다른 명령으로 보낼 수 있는 문자열 개체입니다. 와일드카드가 지원됩니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Path

하나 이상의 위치에 대한 경로를 지정합니다. 와일드카드가 허용됩니다. 기본 위치는 현재 디렉터리(.)입니다.

Type:String[]
Position:0
Default value:Current directory
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-ReadOnly

읽기 전용 항목만 얻으려면 ReadOnly 매개 변수 또는 Attributes 매개 변수 ReadOnly 속성을 사용합니다.

Type:SwitchParameter
Aliases:ar
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Recurse

지정된 위치와 해당 위치의 모든 하위 항목에서 항목을 가져옵니다.

Type:SwitchParameter
Aliases:s
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-System

시스템 파일 및 디렉터리만 가져옵니다. 시스템 파일 및 폴더만 얻으려면 System 매개 변수 또는 Attributes 매개 변수 시스템 속성을 사용합니다.

Type:SwitchParameter
Aliases:as
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

활성 트랜잭션에 명령을 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 사용할 수 있습니다. 자세한 내용은 about_Transactions를 참조하세요.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

String

에 대한 경로가 포함된 문자열을 파이프할 Get-ChildItem수 있습니다.

출력

Object

반환하는 Get-ChildItem 개체의 형식은 공급자 드라이브 경로의 개체에 의해 결정됩니다.

String

Name 매개 변수 Get-ChildItem 를 사용하는 경우 개체 이름을 문자열로 반환합니다.

참고

  • 기본 제공 별칭, ls, dirgci를 참조할 Get-ChildItem 수 있습니다. 자세한 내용은 about_Aliases를 참조하세요.
  • Get-ChildItem 는 기본적으로 숨겨진 항목을 가져올 수 없습니다. 숨겨진 항목을 가져오려면 Force 매개 변수를 사용합니다.
  • Get-ChildItem cmdlet은 모든 공급자가 노출하는 데이터와 함께 작동하도록 설계되었습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 를 입력합니다 Get-PSProvider. 자세한 내용은 about_Providers를 참조하세요.