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을 지원합니다.
- Get-Location
- Set-Location
- Get-Item
- Get-ChildItem
- Invoke-Item
- 항목 이동
- New-Item
- Remove-Item
- Get-ItemProperty
- Set-ItemProperty
- 항목 지우기
- Clear-ItemProperty
- Remove-Item
- Remove-ItemProperty
- Get-Acl
- Set-Acl
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
- 콘텐츠 추가
- Clear-Content
- 콘텐츠 가져오기
- 콘텐츠 설정
이 공급자가 노출하는 형식
파일은 System.IO.FileInfo 클래스의 인스턴스입니다. 디렉터리가 System.IO.DirectoryInfo 클래스의 인스턴스입니다.
PowerShell 확장 형식 시스템은 이러한 개체 형식에 추가 속성을 추가하여 추가 정보를 제공합니다. 일부 정보는 플랫폼별로 다릅니다. 예를 들어 LinkType 속성의 가능한 값은 사용 중인 플랫폼 및 파일 시스템에 따라 달라집니다. Linux 및 macOS 파일 시스템 지원 HardLink
및 SymLink
. Windows NTFS는 LinkType에 SymLink
HardLink
Junction
대한 여러 가지 다른 값을 지원합니다.
연결된 항목에 대한 정보를 사용 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 드라이브 탐색
FileSystem 공급자는 컴퓨터의 논리 드라이브를 PowerShell 드라이브로 매핑하여 데이터 저장소를 노출합니다. FileSystem 드라이브를 사용하려면 드라이브 이름 뒤에 콜론(:
)을 사용하여 위치를 드라이브로 변경할 수 있습니다.
Set-Location C:
다른 PowerShell 드라이브의 FileSystem 공급자와 함께 작업할 수도 있습니다. 다른 위치에서 파일 또는 디렉터리를 참조하려면 경로에서 드라이브 이름(C:
, D:
, ...)을 사용합니다.
참고 항목
PowerShell은 별칭을 사용하여 공급자 경로를 사용하는 친숙한 방법을 허용합니다. 이제 별칭과 같은 ls
dir
명령은 별칭 Get-ChildItem
cd
Set-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-Content
Get-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 클래스를 참조하세요.
파일 및 디렉터리 만들기
디렉터리 만들기
이 명령은 드라이브에 logfiles
C
디렉터리를 만듭니다.
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.txt
된 C:\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
와일드카드를 사용하여 파일 삭제
이 명령은 파일 이름 확장명이 있는 현재 디렉터리의 .xml
모든 파일을 삭제합니다.
Remove-Item -Path *.xml
연결된 파일을 호출하여 프로그램 시작
파일 호출
로컬 서비스에 대한 정보를 가져오는 Get-Service cmdlet은 정보를 Export-Csv cmdlet으로 파이프하여 파일에 정보를 Services.csv
저장합니다.
그런 다음 Invoke-Item 은 services.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
없는 구분 기호를 입력하면 전체 파일이 구분되지 않은 단일 개체로 반환됩니다.
이 매개 변수를 사용하여 "예제의 끝"과 같은 파일 구분 기호를 구분 기호로 지정하여 큰 파일을 더 작은 파일로 분할할 수 있습니다. 구분 기호는 보존되며(삭제되지 않음) 각 파일 섹션의 마지막 항목이 됩니다.
참고 항목
현재 Delimiter 매개 변수의 값이 빈 문자열인 Get-Content
경우 아무것도 반환하지 않습니다. 이것은 알려진 문제입니다. 전체 파일을 지정되지 않은 단일 문자열로 강제로 Get-Content
반환하려면 파일에 없는 값을 입력합니다.
지원되는 Cmdlet
Get-Content
Wait <SwitchParameter>
내용이 파일에 추가되기를 기다립니다. 콘텐츠가 추가되면 추가된 콘텐츠가 반환됩니다. 내용이 변경된 경우에는 전체 파일을 반환합니다.
대기 Get-Content
하는 경우 Ctrl+C를 누르는 등의 작업을 중단할 때까지 초당 한 번씩 파일을 확인합니다.
지원되는 Cmdlet
Get-Content
Attributes <FlagsExpression>
지정된 특성이 있는 파일 및 폴더를 가져옵니다. 이 매개 변수는 모든 특성을 지원하며 특성의 복잡한 조합을 지정할 수 있습니다.
Attributes 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Attributes 매개 변수는 다음 특성을 지원합니다.
- 보관
- Compressed
- 디바이스
- 디렉터리
- 암호화됨
- 숨겨짐
- Normal
- NotContentIndexed
- 오프라인
- 읽기 전용
- ReparsePoint
- SparseFile
- 시스템
- 임시
이러한 특성에 대한 설명은 FileAttributes 열거형을 참조하세요.
다음 연산자를 사용하여 특성을 결합합니다.
!
-안+
-그리고,
-또는
연산자와 해당 특성 사이에는 공백이 허용되지 않습니다. 그러나 쉼표 앞에는 공백이 허용됩니다.
지원되는 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
스트림 <문자열>
대체 데이터 스트림을 관리합니다. 스트림 이름을 입력합니다. 와일드카드는 파일 시스템 드라이브의 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:
참고 항목
PowerShell