본문 바로가기
programming language/powershell

Powershell 용량 작은 파일 지우기

by __observer__ 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 비교연산자

 


반응형

댓글