본문 바로가기
programming language/powershell

Powershell 용량 작은 파일 지우기

by 남성 2011. 3. 6.

컴퓨터를 사용하다 보면 특정 용량 이상 또는 특정 용량 이하의 파일들을 걸러 내고 싶은 경우가 있다.

이런 경우엔 단순히 윈도우 탐색기에서 크기에 따라 정렬을 한 이후에 드래그 하여 지우는 방법 등을 쓸 수가 있다.

하지만 같은 폴더내에 특정 확장자의 파일만 지우고 싶은 경우에는 윈도우 탐색기만으로는 부족하다.

이런 경우 powershell 을 이용하면 너무나 간단히 작업을 완료 할 수가 있다.

나의 경우엔 D:\movie_folder 안에 있는 avi 파일 중에서 용량이 100 MB 이하인 파일들을 지우고 싶었다.

위 작업을 수행하는 powershell 코드는 아래와 같다.

 

gci d:\movie_folder\* -Include *.avi | Where-Object -FilterScript { $_.length -lt 100MB } | Remove-Item –Force

 

위 코드에 대해 설명을 해 보자.

  • gci 는 Get-ChildItem 의 alias(별명) 으로서 우리가 흔히 알고있는 dir 과 같은 의미이다. 즉 저장소 내의 하위 항목들을 가져 온다.
  • d:\movie_folder\* 는 찾고자 하는 폴더
  • -Include *.avi 은 avi 파일만 찾겠다는 의미
  • 이에 대해 파이프라인( | ) 으로 연결해서 Where-Object 로 찾고자 하는 조건을 만들어준다.
  • $_.length 은 각 항목들의 크기를 말한다.
  • -lt 는 비교 연산자이다. < 를 의미 하는 것으로 작다 를 나타내는 비교 연산자이다. 100 MB 보다 작은 파일들만 걸러낸다.
  • Remove-Item –Force 는 강제로 삭제하라는 의미다.

 

위 코드에서 비교연산자 부분에 대해 추가적인 설명을 하자면

powrshell 에서는 우리가 흔히 알고 있는 비교 연산자인 > , < , >= 등을 쓰지 않는다.

대신 다음과 같이 문자로 표시 한다.

 

표 1, powershell 비교 연산자

-lt

Less than

작다

-le

Less than or equal to

작거나 같다

-gt

Greater than

크다

-ge

Greater than or equal to

크거나 같다

-eq

Equal to

같다

-ne

Not equal to

같지 않다

-like

Like (uses wildcards for matching)

유사하다

-notlike

Not like (uses wildcards for matching)

유사하지 않다

표 출처: powershell 비교연산자

 


댓글0