about_FileSystem_Provider

공급자 이름

FileSystem

드라이브

C:, D:... Temp:

기능

Filter, ShouldProcess

간단한 설명

파일 및 디렉터리에 대한 액세스를 제공합니다.

자세한 설명

PowerShell FileSystem 공급자를 사용하면 PowerShell에서 파일 및 디렉터리를 가져오기, 추가, 변경, 지우고 삭제할 수 있습니다.

FileSystem 드라이브는 컴퓨터의 디렉터리와 파일을 포함하는 계층 구조 네임스페이스입니다. FileSystem 드라이브는 논리적 또는 물리적 드라이브, 디렉터리 또는 매핑된 네트워크 공유일 수 있습니다.

PowerShell 버전 7.0부터 호출 TEMP: 된 드라이브가 사용자의 임시 디렉터리 경로에 매핑됩니다. PowerShell은 .NET GetTempPath() 메서드를 사용하여 임시 폴더의 위치를 확인합니다. Windows에서 위치는 $env:TEMP. 비 Windows 시스템에서 위치는 환경 변수가 정의되지 않은 경우와 $env:TMPDIR 같거나 /tmp 같습니다.

FileSystem 공급자는 이 문서에서 설명하는 다음 cmdlet을 지원합니다.

이 공급자가 노출하는 형식

파일은 System.IO.FileInfo 클래스의 인스턴스입니다. 디렉터리가 System.IO.DirectoryInfo 클래스의 인스턴스입니다.

PowerShell 확장 형식 시스템은 이러한 개체 형식에 추가 속성을 추가하여 추가 정보를 제공합니다. 일부 정보는 플랫폼별로 다릅니다. 예를 들어 LinkType 속성의 가능한 값은 사용 중인 플랫폼 및 파일 시스템에 따라 달라집니다. Linux 및 macOS 파일 시스템 지원 HardLinkSymLink. Windows NTFS는 LinkTypeSymLinkHardLinkJunction대한 여러 가지 다른 값을 지원합니다.

연결된 항목에 대한 정보를 사용 Get-Item 하거나 Get-ChildItem 사용하는 경우 Mode 속성에는 항목이 링크임을 나타내는 값이 포함 l 됩니다. LinkType 속성에는 링크 유형이 포함됩니다.

AppExecLink 링크는 Microsoft Store에서 애플리케이션을 설치할 때 만들어집니다. 링크의 경우 AppExecLink Windows는 LinkType 또는 LinkTarget 속성에 대한 값을 제공하지 않습니다.

Get-Item ~\AppData\Local\Microsoft\WindowsApps\winget.exe

    Directory: C:\Users\user1\AppData\Local\Microsoft\WindowsApps

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
la---            6/8/2023 12:20 PM              0 winget.exe ->

FileSystem 공급자는 컴퓨터의 논리 드라이브를 PowerShell 드라이브로 매핑하여 데이터 저장소를 노출합니다. FileSystem 드라이브를 사용하려면 드라이브 이름 뒤에 콜론(:)을 사용하여 위치를 드라이브로 변경할 수 있습니다.

Set-Location C:

다른 PowerShell 드라이브의 FileSystem 공급자와 함께 작업할 수도 있습니다. 다른 위치에서 파일 또는 디렉터리를 참조하려면 경로에서 드라이브 이름(C:, D:, ...)을 사용합니다.

참고 항목

PowerShell은 별칭을 사용하여 공급자 경로를 사용하는 친숙한 방법을 허용합니다. 이제 별칭과 같은 lsdir 명령은 별칭 Get-ChildItemcdSet-Location입니다. 에 pwd 대한 Get-Location별칭입니다.

파일 및 디렉터리 가져오기

cmdlet은 Get-ChildItem 현재 위치에 있는 모든 파일 및 디렉터리를 반환합니다. 기본 제공 매개 변수를 검색하고 사용하여 재귀 깊이를 필터링하고 제어하는 다른 경로를 지정할 수 있습니다.

Get-ChildItem

cmdlet 사용에 대한 자세한 내용은 Get-ChildItem을 참조 하세요.

파일 및 디렉터리 복사

cmdlet은 Copy-Item 파일 및 디렉터리를 지정한 위치에 복사합니다. 매개 변수는 다음과 유사하게 필터링 및 재귀에 Get-ChildItem사용할 수 있습니다.

다음 명령은 폴더 C:\Windows\Temp경로 아래에 C:\temp\ 있는 모든 파일 및 디렉터리를 복사합니다.

Copy-Item -Path C:\temp\* -Destination C:\Windows\Temp -Recurse -File

Copy-Item 확인 메시지를 표시하지 않고 대상 디렉터리의 파일을 덮어씁니다.

이 명령은 디렉터리에서 C:\a 디렉터리로 C:\a\bb 파일을 복사 a.txt 합니다.

Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt

디렉터리의 모든 디렉터리와 파일을 C:\a 디렉터리에 C:\c 복사합니다. 복사할 디렉터리가 대상 디렉터리에 이미 있는 경우 Force 매개 변수를 지정하지 않으면 명령이 실패합니다.

Copy-Item -Path C:\a\* -Destination C:\c -Recurse

자세한 내용은 Copy-Item을 참조 하세요.

파일 및 디렉터리 이동

이 명령은 디렉터리의 파일을 C:\a 디렉터리로 C:\a\aa 이동합니다c.txt.

Move-Item -Path C:\a\c.txt -Destination C:\a\aa

기본적으로 cmdlet은 이름이 같은 기존 파일을 덮어쓰지 않습니다. cmdlet이 기존 파일을 덮어쓰도록 하려면 Force 매개 변수를 지정합니다.

디렉터리가 현재 위치인 경우에는 디렉터리를 이동할 수 없습니다. 현재 위치에서 디렉터리를 이동하는 데 사용하면 Move-Item 이 오류가 표시됩니다.

C:\temp> Move-Item -Path C:\temp\ -Destination C:\Windows\Temp

Move-Item : Cannot move item because the item at 'C:\temp\' is in use.
At line:1 char:1
+ Move-Item C:\temp\ C:\temp2\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Move-Item], PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.MoveItemCommand

파일 콘텐츠 관리

파일의 콘텐츠 가져오기

이 명령은 "Test.txt" 파일의 내용을 가져와 콘솔에 표시합니다.

Get-Content -Path Test.txt

파일 내용을 다른 cmdlet으로 파이프할 수 있습니다. 예를 들어 다음 명령은 파일의 Test.txt 내용을 읽은 다음 ConvertTo-Html cmdlet에 대한 입력으로 제공합니다.

Get-Content -Path Test.txt | ConvertTo-Html

공급자 경로에 달러 기호($)를 접두사로 추가하여 파일의 콘텐츠를 검색할 수도 있습니다. 경로는 변수 명명 제한으로 인해 중괄호로 묶어야 합니다. 자세한 내용은 about_Variables 참조하세요.

${C:\Windows\System32\Drivers\etc\hosts}

파일에 콘텐츠 추가

이 명령은 파일에 "테스트 콘텐츠" 문자열을 Test.txt 추가합니다.

Add-Content -Path test.txt -Value "test content"

파일의 Test.txt 기존 콘텐츠는 삭제되지 않습니다.

파일의 내용 바꾸기

이 명령은 파일의 Test.txt 내용을 "테스트 콘텐츠" 문자열로 바꿉니다.

Set-Content -Path test.txt -Value "test content"

의 내용을 덮어씁니다 Test.txt. cmdlet의 Value 매개 변수를 New-Item 사용하여 만들 때 파일에 콘텐츠를 추가할 수 있습니다.

파일의 내용을 반복합니다.

기본적으로 cmdlet은 Get-Content 줄 끝 문자를 구분 기호로 사용하므로 파일의 각 줄을 하나의 문자열로 사용하여 파일을 문자열 컬렉션으로 가져옵니다.

구분 기호 매개 변수를 사용하여 대체 구분 기호를 지정할 수 있습니다. 이를 섹션의 끝 또는 다음 섹션의 시작을 나타내는 문자로 설정하면 파일을 논리적 부분으로 분할할 수 있습니다.

첫 번째 명령은 파일을 가져와 Employees.txt 서 섹션으로 분할합니다. 각 명령은 "직원 레코드의 끝"이라는 단어로 끝나고 변수에 $e 저장합니다.

두 번째 명령은 배열 표기법을 사용하여 컬렉션의 첫 번째 항목을 가져옵니다 $e. PowerShell 배열은 0부터 시작하는 인덱스를 사용합니다.

cmdlet에 대한 자세한 내용은 에 대한 Get-ContentGet-Content도움말 항목을 참조하세요.

배열에 대한 자세한 내용은 about_Arrays 참조하세요.

$e = Get-Content c:\test\employees.txt -Delimited "End Of Employee Record"
$e[0]

보안 설명자 관리

파일의 ACL 보기

이 명령은 System.Security.AccessControl.FileSecurity 개체를 반환합니다.

Get-Acl -Path test.txt | Format-List -Property *

이 개체에 대한 자세한 내용은 Get-Member cmdlet에 명령을 파이프하거나 FileSecurity 클래스를 참조하세요.

파일 및 디렉터리 만들기

디렉터리 만들기

이 명령은 드라이브에 logfilesC 디렉터리를 만듭니다.

New-Item -Path c:\ -Name logfiles -Type directory

PowerShell에는 cmdlet을 md사용하여 New-Item 새 디렉터리를 만드는 함수(별칭)도 포함되어 mkdir 있습니다.

파일을 만듭니다.

이 명령은 디렉터리에 파일을 C:\logfiles 만든 log2.txt 다음 파일에 "테스트 로그" 문자열을 추가합니다.

New-Item -Path c:\logfiles -Name log2.txt -Type file

콘텐츠를 포함하는 파일 만들기

디렉터리에 호출 log2.txtC:\logfiles 파일을 만들고 "테스트 로그" 문자열을 파일에 추가합니다.

New-Item -Path c:\logfiles -Name log2.txt -Type file -Value "test log"

파일 및 디렉터리 이름 바꾸기

파일 이름 바꾸기

이 명령은 디렉터리의 파일 C:\a 이름을 다음과 같이 b.txt바꿉니다a.txt.

Rename-Item -Path c:\a\a.txt -NewName b.txt

디렉터리 이름 바꾸기

이 명령은 디렉터리의 이름을 다음과 같이 C:\a\dd바꿉니다C:\a\cc.

Rename-Item -Path c:\a\cc -NewName dd

파일 및 디렉터리 삭제

파일 삭제하기

이 명령은 현재 디렉터리의 파일을 삭제 Test.txt 합니다.

Remove-Item -Path test.txt

wild카드s를 사용하여 파일 삭제

이 명령은 파일 이름 확장명이 있는 현재 디렉터리의 .xml 모든 파일을 삭제합니다.

Remove-Item -Path *.xml

연결된 파일을 호출하여 프로그램 시작

파일 호출

로컬 서비스에 대한 정보를 가져오는 Get-Service cmdlet은 정보를 Export-Csv cmdlet으로 파이프하여 파일에 정보를 Services.csv 저장합니다.

그런 다음 Invoke-Itemservices.csv 확장과 연결된 .csv 프로그램에서 파일을 엽니다.

Get-Service | Export-Csv -Path services.csv
Invoke-Item -Path services.csv

지정된 특성이 있는 파일 및 폴더 가져오기

시스템 파일 가져오기

이 명령은 현재 디렉터리와 해당 하위 디렉터리의 시스템 파일을 가져옵니다.

File 매개 변수를 사용하여 파일(디렉터리 아님)만 가져오고 System 매개 변수는 "시스템" 특성이 있는 항목만 가져옵니다.

Recurse 매개 변수를 사용하여 현재 디렉터리와 모든 하위 디렉터리의 항목을 가져옵니다.

Get-ChildItem -File -System -Recurse

숨겨진 파일 가져오기

이 명령은 숨겨진 파일을 포함한 모든 파일을 현재 디렉터리에 가져옵니다.

이는 숨겨진 파일을 가져오고 다른 모든 파일을 가져오는 두 개의 값!Directory+Hidden!Directory있는 Attributes 매개 변수를 사용합니다.

Get-ChildItem -Attributes !Directory,!Directory+Hidden

dir -att !d,!d+h 는 이 명령과 동일합니다.

압축 및 암호화된 파일 가져오기

이 명령은 압축되거나 암호화된 현재 디렉터리의 파일을 가져옵니다.

두 값 Compressed함께 Attributes 매개 변수를 Encrypted사용합니다. 값은 "OR" 연산자를 나타내는 쉼표 , 로 구분됩니다.

Get-ChildItem -Attributes Compressed,Encrypted

동적 매개 변수

동적 매개 변수는 PowerShell 공급자에 의해 추가되는 cmdlet 매개 변수이며 공급자 사용 드라이브에서 cmdlet을 사용하는 경우에만 사용할 수 있습니다.

인코딩 <인코딩>

파일 인코딩을 지정합니다. 기본값은 ASCII입니다.

  • ascii: ASCII(7비트) 문자 집합의 인코딩을 사용합니다.
  • bigendianunicode: big-endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.
  • bigendianutf32: big-endian 바이트 순서를 사용하여 UTF-32 형식으로 인코딩합니다.
  • oem: MS-DOS 및 콘솔 프로그램에 대한 기본 인코딩을 사용합니다.
  • unicode: little-endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.
  • utf7: UTF-7 형식으로 인코딩합니다.
  • utf8: UTF-8 형식으로 인코딩합니다.
  • utf8BOM: BOM(바이트 순서 표시)을 사용하여 UTF-8 형식으로 인코딩
  • utf8NoBOM: BOM(바이트 순서 표시)이 없는 UTF-8 형식으로 인코딩
  • utf32: UTF-32 형식으로 인코딩합니다.

지원되는 Cmdlet

  • Add-Content
  • Get-Content
  • Set-Content

<구분 기호 문자열>

파일을 읽는 동안 개체로 나누는 데 사용하는 구분 Get-Content 기호를 지정합니다.

기본값은 \n줄 끝 문자입니다.

텍스트 파일을 Get-Content 읽을 때 각각 구분 기호 문자로 끝나는 문자열 개체의 컬렉션을 반환합니다.

파일에 Get-Content 없는 구분 기호를 입력하면 전체 파일이 구분되지 않은 단일 개체로 반환됩니다.

이 매개 변수를 사용하여 "예제의 끝"과 같은 파일 구분 기호를 구분 기호로 지정하여 큰 파일을 더 작은 파일로 분할할 수 있습니다. 구분 기호는 유지되며(dis카드ed 아님) 각 파일 섹션의 마지막 항목이 됩니다.

참고 항목

현재 Delimiter 매개 변수의 값이 빈 문자열인 Get-Content 경우 아무것도 반환하지 않습니다. 이것은 알려진 문제입니다. 전체 파일을 지정되지 않은 단일 문자열로 강제로 Get-Content 반환하려면 파일에 없는 값을 입력합니다.

지원되는 Cmdlet

  • Get-Content

Wait <SwitchParameter>

내용이 파일에 추가되기를 기다립니다. 콘텐츠가 추가되면 추가된 콘텐츠가 반환됩니다. 내용이 변경된 경우에는 전체 파일을 반환합니다.

대기하는 Get-Content 경우 Ctrl+C를 누르는 것과 같이 파일을 인터럽트할 때까지 파일을 1초마다 한 번씩 검사.

지원되는 Cmdlet

  • Get-Content

Attributes <FlagsExpression>

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

Attributes 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

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

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

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

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

  • ! - NOT
  • + -및
  • , -또는

연산자와 해당 특성 사이에는 공백이 허용되지 않습니다. 그러나 쉼표 앞에는 공백이 허용됩니다.

지원되는 Cmdlet

  • Get-ChildItem

디렉터리 <SwitchParameter>

디렉터리(폴더)를 가져옵니다.

디렉터리 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

디렉터리만 얻으려면 Directory 매개 변수를 사용하고 File 매개 변수를 생략합니다. 디렉터리를 제외하려면 File 매개 변수를 사용하고 Directory 매개 변수를 생략하거나 Attributes 매개 변수를 사용합니다.

지원되는 Cmdlet

  • Get-ChildItem

파일 <SwitchParameter>

파일을 가져옵니다.

File 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

파일만 얻으려면 File 매개 변수를 사용하고 Directory 매개 변수를 생략합니다. 파일을 제외하려면 디렉터리 매개 변수를 사용하고 File 매개 변수를 생략하거나 Attributes 매개 변수를 사용합니다.

지원되는 Cmdlet

  • Get-ChildItem

숨겨진 <SwitchParameter>

숨겨진 파일 및 디렉터리(폴더)만 가져옵니다. 기본적으로 숨겨진 항목이 Get-ChildItem 아닌 항목만 가져옵니다.

Hidden 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

숨겨진 항목만 가져오려면 Hidden 매개 변수, 해당 h 또는 별칭 또는 ah Attributes 매개 변수의 Hidden 값을 사용합니다. 숨겨진 항목을 제외하려면 Hidden 매개 변수를 생략하거나 Attributes 매개 변수를 사용합니다.

지원되는 Cmdlet

  • Get-ChildItem

ReadOnly <SwitchParameter>

읽기 전용 파일 및 디렉터리(폴더)만 가져옵니다.

ReadOnly 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

읽기 전용 항목만 가져오려면 ReadOnly 매개 변수, 해당 ar 별칭 또는 Attributes 매개 변수의 ReadOnly 값을 사용합니다. 읽기 전용 항목을 제외하려면 Attributes 매개 변수를 사용합니다.

지원되는 Cmdlet

  • Get-ChildItem

시스템 <SwitchParameter>

시스템 파일 및 디렉터리(폴더)만 가져옵니다.

시스템 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

시스템 파일 및 폴더만 얻으려면 System 매개 변수, 해당 as 별칭 또는 Attributes 매개 변수의 시스템 값을 사용합니다. 시스템 파일 및 폴더를 제외하려면 Attributes 매개 변수를 사용합니다.

지원되는 Cmdlet

  • Get-ChildItem

NewerThan <DateTime>

파일 값이 LastWriteTime 지정된 날짜보다 큰 경우를 반환 $True 합니다. 그 외의 경우 $False를 반환합니다.

Get-Date cmdlet이 반환하는 것과 같은 DateTime 개체 또는 DateTime 개체로 변환할 수 있는 문자열(예: "August 10, 2011 2:00 PM")을 입력합니다.

지원되는 Cmdlet

OlderThan <DateTime>

파일 값이 LastWriteTime 지정된 날짜보다 작은 경우를 반환 $True 합니다. 그 외의 경우 $False를 반환합니다.

cmdlet이 반환하는 Get-Date 것과 같은 DateTime 개체 또는 DateTime 개체로 변환할 수 있는 문자열(예: "August 10, 2011 2:00 PM")을 입력합니다.

지원되는 Cmdlet

  • Test-Path

스트림 <문자열>

대체 데이터 스트림을 관리합니다. 스트림 이름을 입력합니다. Wild카드s는 파일 시스템 드라이브의 Get-Item 명령 및 Remove-Item 에만 허용됩니다.

지원되는 Cmdlet

  • Add-Content
  • Clear-Content
  • Get-Item
  • Get-Content
  • Remove-Item
  • Set-Content

원시 <SwitchParameter>

줄다리기 문자를 무시합니다. 콘텐츠를 단일 항목으로 반환합니다.

지원되는 Cmdlet

  • Get-Content

ItemType <문자열>

이 매개 변수를 사용하여 만들 항목의 형식을 지정할 수 있습니다 New-Item.

이 매개 변수의 사용 가능한 값은 사용 중인 현재 공급자에 따라 달라집니다.

FileSystem 드라이브에서 다음 값이 허용됩니다.

  • 파일
  • 디렉터리
  • SymbolicLink
  • 분기 동기화
  • HardLink

지원되는 Cmdlet

  • New-Item

파이프라인 사용

공급자 cmdlet은 파이프라인 입력을 허용합니다. 파이프라인을 사용하여 한 cmdlet에서 다른 공급자 cmdlet으로 공급자 데이터를 전송하여 작업을 간소화할 수 있습니다. 공급자 cmdlet에서 파이프라인을 사용하는 방법에 대한 자세한 내용은 이 문서 전체에서 제공하는 cmdlet 참조를 참조하세요.

도움말 가져오기

Windows PowerShell 3.0부터 파일 시스템 드라이브에서 해당 cmdlet이 작동하는 방식을 설명하는 공급자 cmdlet에 대한 사용자 지정된 도움말 항목을 가져올 수 있습니다.

파일 시스템 드라이브에 대해 사용자 지정된 도움말 항목을 얻으려면 파일 시스템 드라이브에서 Get-Help 명령을 실행하거나 경로 매개 변수 Get-Help 를 사용하여 파일 시스템 드라이브를 지정합니다.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c:

참고 항목