PowerShell을 사용하여 폴더 내의 파일명을 한 번에 바꾸기

공대생의 팁 2021. 6. 11. 22:58

 

 

 우분투에서 터미널을 다룰 때 다량의 파일들을 처리할 때 간단한 명령어로 쉽게 처리하곤 했었습니다. Windows에서도 많은 양의 파일을 다루게 되었을 때 우분투에서는 쉽게 생각해낼 수 있는 명령어가 익숙치 않아 찾아보던 도중 괜찮은 내용이 있어 이렇게 여러분들께 공유해보고자 합니다.

 

 Windows를 사용함에 있어 가장 큰 장점은 사용하기 쉬운 UI를 통해 사용자가 편하게 애플리케이션을 제어할 수 있다는 점입니다. 특히 파일명을 바꾸고 싶을 때는 아래와 같이 파일 이름을 한 번 사뿐이 클릭만 해주면 바로 바꿀 수 있게 되어 있다는 것이지요.

 그러나 아무리 사용이 편한 Windows라고 할지라도 파일의 갯수가 수천개 이상일 경우 이러한 방식으로 일일히 파일명을 변경하려 하는 것은 상당한 시간 낭비입니다. 그렇다면 Windows에서도 우분투의 터미널처렴 간단한 명령어로 파일명을 변경하는 방법은 없을까요?

 

 Windows에서도 강력한 CLI 환경인 PowerShell을 제공합니다. 이름 변경을 원하는 폴더 화면에서 Shift+오른쪽마우스버튼을 클릭하면 아래와 같이 '여기에 PowerShell 창 열기'라는 메뉴가 나타납니다. 해당 메뉴를 클릭해줍니다.

 이 과정을 거치면 여러분의 컴퓨터 환경에서 PowerShell을 사용할 수 있게 됩니다. 

 만약 여러분들이 특정 폴더 내의 모든 파일명 앞이나 뒷부분에 원하는 내용을 추가하고자 합니다. 이 경우 다음과 같은 명령어를 입력해주면 폴더 내의 모든 파일명의 prefix(접미사)부분에 추가한 명칭이 추가되는 것을 확인해봅니다.

 

dir -exclude "1st_*" | Rename-Item -NewName {"1st_" + $_.name}

 

여기서 위의 명령어들을 하나씩 살펴보도록 하겠습니다.

 

dir: 폴더 내의 모든 파일을 조회합니다. 만약 폴더 내 하위 폴더의 내용들을 모두 보고 싶다면 다음과 같이 \b\s를 추가해줍니다.

 

dir \b\s -exclude "1st_*" | Rename-Item -NewName {"1st_" + $_.name}

 

-exclude "1st_*": 폴더 내 파일명중 "1st_"로 시작되는 파일명은 조회에서 제외합니다. 이때 *은 "1st_" 뒤는 어떤 내용이든 상관없다는 의미로 이해하시면 됩니다.

 위 명령어를 미리 넣어주는 이유는 파일명이 변경되고나서도 파일을 또다시 조회하는 경우가 발생하는데 이 경우가 생기면 파일명이 한도끝도 없이 변경되는 참사가 발생하는 경우가 있습니다.

 

|: 둘 이상의 명령어를 연결해줍니다. 위의 예제에서의 경우 dir을 실행한 다움 Rename-Item 명령어로 이어주어 명령어가 실행될 수 있도록 하여줍니다.

 

Rename-Item: 지정된 파일명을 변경합니다. 위의 경우 dir로 나타난 결과를 변경합니다.

 

-NewName {"1st_" + $_.name}: 지정된 파일에 새 이름을 부여합니다. 여기서 "$_name"은 지정된 파일의 이름을 뜻합니다.

 

위 명령어를 실행하면 아래와 같은 결과를 얻을 수 있습니다.

 이번에는 파일명의 반복되는 일부분을 변경하는 명령어를 실행해 보겠습니다.

 

dir | Rename-Item -NewName {$_.name -replace "1st_", "2"}

 

 위 명령어를 보았을 때 -replace가 이름의 일부분을 바꾸는 것임을 유추할 수 있습니다. 명령어를 입력한 후 결과를 확인해 보도록 합니다.

위 예제를 응용하여 이번에는 이름에서 특정 반복되는 부분을 삭제해볼까요?

 

dir | Rename-Item -NewName {$_.name -replace "2", ""}

 

해당 명령어를 적용해보면 모든 파일의 이름이 말끔하게 바뀌었음을 확인할 수 있습니다.

 

 

 

300x250

VMware에서 Fedora에 VMware Tools 설치 후에도 해상도 변경이 안될때

공대생의 팁 2021. 5. 16. 16:12

 

 다수의 분들이 Linux 운영체제로 우분투를 선택하기에 우분투를 사용하다 발생하는 이슈 및 문제점들을 찾는데 어려움 없이 해결할 수 있지요. 그러함에도 종종 Fedora를 사용하는 경우가 있었는데 Fedora를 사용하는 도중에 발생된 이슈를 처리함에 있어 우분투에 비해 찾기 아려운 점은 항상 아쉬움이 남습니다. 그럼에도 Fedora를 쓰는 이유는 새로운 관점에서 소프트웨어를 사용할 때 어떤 문제가 있을까 하는 점에서 알아보기 위함이 있었습니다.

 

 이번에는 그러한 과정에서 VMware Tools를 설치하였음으에도 Fedora의 해상도가 변하지 않는 현상이 있어 이를 조사하는 과정에서 해결 과정을 기록하고자 합니다.

 

 먼저 기본적으로 VMware Tools를 설치하였을 때 해상도를 자유롭게 바꿀 수 있기에 많이 사용되지요. VMware에 설치된 리눅스에 VMware를 설치하는 방법은 아래의 방법에 따라서 설치해주시면 되겠습니다.

 

https://recipes4dev.tistory.com/116

 

VMware Tools 설치 및 업그레이드 방법. (How to install and upgrade the VMware Tools.)

1. VMware Tools 이전 글 [VMware에 우분투 리눅스(Ubuntu Linux) 설치하기]에서 VMware에 우분투 리눅스(Ubuntu Linux)를 설치하는 방법에 대해 설명하였습니다. VMware Workstation Player(버전 12)에 가상 머신..

recipes4dev.tistory.com

 

 희안하게도 Fedora에서는 VMware Tools를 설치하고 나서도 해상도 변경이 되지 않는 점이 있었습니다.

 

  해당 문제의 원인은 Wayland에 관한 이슈가 있는 것으로 보입니다. 해당 문제는 다른 Linux 운영체제에서도 발생할 수 있는 이슈로 추정됩니다.

The issue is that libresolutionKMS.so is not loaded into the Wayland session on Fedora 33

이를 해결하기 위해 vmware tools에서 설정을 일부 변경해주도록 해야 합니다.

 

  1. 먼저 다음과 같은 명령어를 사용해 tools.conf 파일을 생성합니다.

$cp /etc/vmware-tools/tools.conf.example /etc/vmware-tools/tools.conf

 2. vi 혹은 gedit와 같은 editor을 실행하여줍니다.

#sudo gedit /etc/vmware-tools/tools.conf

3. [resolutionKMS] 부분을 찾으신 다음 'enable=true' 앞에 있는 주석 '#'을 지운 다음 저장합니다.

[resolutionKMS]
# Default is true if tools finds an xf86-video-vmware driver with
# version >= 13.2.0. If you don't have X installed, set this to true manually.
# This only affects tools for Linux.
enable=true

4. system control을 재시작하여줍니다.

systemctl restart vmtoolsd.service

 

여기까지 진행하셨다면 VMware에서 Fedora의 해상도를 자유롭게 변환하실 수 있습니다.

 

참고자료: https://www.reddit.com/r/Fedora/comments/iygcup/fedora_33_openvmtools/

 

Fedora 33 open-vm-tools

Can't get f33 to run in full screen under vmware. I checked the open-vm-tools version, it's the same with the one installed in Ubuntu 20.10...

www.reddit.com

 

300x250

Windows Powershell 명령어를 바로가기로 구현하기

공대생의 팁 2021. 4. 30. 20:38

 

 인공지능을 Windows에서 다루기 위해 Anaconda를 설치하여 Windows에서도 Python을 사용할 수 있는 기회가 많아지고 있습니다. 그러다보니 자연스레 Ubuntu에서처럼 미리 작성된 스크립트를 바로 실행시켜보고자 하는 방법을 알아보게 되었습니다.

 마침 Windows Powershell에서 이와 같은 기능을 사용할 수 있을 것으로 보여 방법을 찾아보았습니다. 혹시나 해당 방법을 필요로 하시는 분들을 위해 방법을 공유해드리겠습니다.

 

1. Powershell 바로가기 만들기

 바탕화면에 Powershell 바로가기를 만드는 방법은 두 가지 경우가 있습니다.

 

방법1: 바로가기 복사하기

 

시작버튼 오른쪽에 위치한 돋보기 버튼을 클릭하여 'powershell'이라고 검색하면 아래와 같은 화면을 보실 수 있습니다.

 

'Windows Powershell' 메뉴에 마우스 오른쪽 버튼을 클릭한 다음 '파일 위치 열기'를 클릭합니다.

 

 위와 같은 PowerShell 바로가기 아이콘들을 볼 수 있습니다. 이 중 제일 아래의 것을 복사하여 원하는 위치에 붙여넣기를 해주면 됩니다.

 

방법2: 직접 바로가기 생성

 

 바로가기를 두고싶은 폴더 혹은 바탕화면에서 오른쪽 버튼을 클릭하신 후 '새로 만들기(W)' → '바로 가기(S)'를 선택합니다.

 바로 가기 만들기의 항목 위치 입력(T)에 다음과 같은 주소를 입력한 후 다음(N) 버튼을 눌러주세요.

 %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

 

 바로가기의 이름을 지정합니다. 이 이름은 PowerShell 창을 열었을 때 창의 제목이 됩니다.

 

 위와 같은 과정을 통해 두 가지의 PowerShell 바로가기를 생성하였습니다. 만약 PowerShell을 실행하자마자 원하는 폴더 경로에 PowerShell을 시작하고 싶으시다면 바로가기의 속성을 변경해줍니다.

 

 2. PowerShell 실행 위치 설정

 

 속성에서 '바로 가기' 탭을 선택해 시작 위치(S)에 PowerShell이 시작되었을 때 위치를 설정해줍니다. 위와 같이 설정하실 경우 PowerShell이 실행되자마자 바탕화면에서 PowerShell이 시작됩니다.

 3. PowerShell 스크립트 작성하기

  지금부터 PowerShell 명령어를 바로 실행할 수 있는 스크립트를 만들어보도록 하겠습니다. PowerShell이 실행되는 스크립드를 메모장으로 다음과 같이 작성하였습니다.

example.ps1
0.00MB

powershell -ExecutionPolicy ByPase -NoExit -Command "& winver;"

 

여기서 명령어 내용에 대해 간단하게 분석해드리자면

powershell: PowerSehll을 실행합니다.

-ExecutionPolicy: Script 실행 정책을 정의합니다. ByPass를 설정함으로서 직접 입력하지 않아도 해당 명령어를 사용할 수 있도록 해줍니다.

-NoExit: PowerShell 수행이 종료되거나 오류가 발생하더라도 창이 저절로 꺼지지 않게 해줍니다.

-Command: PowerShell에서 수행하고자 하는 명령어를 입력해줍니다. Enter로 나누어지는 명령의 경우 세미콜론(;)으로 구분해줍니다. 양식은 "& 명령어; 명령어;" 식으로 입력해줍니다.

 4. 스크립트를 바로가기로 연결하기

 다음으로 PowerShell의 바로가기를 수정하여 스크립트가 바로 실행될 수 있도록 설정해줍니다. 해당 바로가기의 속성에서 다음과 같이 수정해줍니다.

 대상(T) 부분에 다음과 같은 내용을 추가하여 example.ps1 스크립트가 실행될 수 있도록 설정합니다.

 %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass ".\example.ps1"

 

 위와 같이 설정된 PowerShell 바로가기를 실행하면 설정된 명령어가 바로 실행됨을 확인하실 수 있습니다.

 

 

 

300x250