이름에서 Windows 파일 경로처럼 보이는 파일 그룹의 이름을 바꾸는 방법


9

파일 이름이 엉망인 파일이 많이 있습니다. 모든 파일 이름은 Windows 파일 디렉토리처럼 보이는 시작이 동일합니다. 문제는 700 개 이상의 파일이 있으며 실제로 모든 파일 이름을 수동으로 바꾸고 싶지 않습니다. 다음은 파일 이름의 예입니다 (주 : 파일 디렉토리가없는 파일은 없음).

G:some\really\long\file\path\then\the\name1.jpg
G:some\really\long\file\path\then\the\name2.png
G:some\really\long\file\path\then\the\filename.txt
G:some\really\long\file\path\then\the\file_name.mov
...

중요한 것은 각 파일이 G:some\really\long\file\path\then\the\원하는 파일 이름 앞에 있어야한다는 것입니다.

위의 파일을 다음과 같이 표시하고 싶습니다.

name1.jpg
name2.png
filename.txt
file_name.mov

나는 rename명령을 시도했지만 성공하지 못했습니다. 나는 여전히 리눅스를 처음 접했고 실제로 어떻게 해야하는지 또는 실제로 무엇을 해야할지 확실하지 않습니다. 도움을 주시면 감사하겠습니다.

답변:


18

방금 마지막 백 슬래시까지 모든 것을 제거했습니다. rename

$ rename -n 's/.*\\//' G*
rename(G:some\really\long\file\path\then\the\file_name.mov, file_name.mov)
rename(G:some\really\long\file\path\then\the\filename.txt, filename.txt)
rename(G:some\really\long\file\path\then\the\name1.jpg, name1.jpg)
rename(G:some\really\long\file\path\then\the\name2.png, name2.png)

-n실제로 파일 이름을 바꾸려면 테스트 후 제거하십시오 .

노트

  • -n 아무것도하지 말고 변경 내용을 인쇄하십시오.
  • s/old/new교체 oldnew
  • .* 임의의 수의 문자
  • \\ 첫 번째 백 슬래시는 두 번째 백 슬래시입니다.
  • 정규 표현식이 욕심 많기 때문에이 표현 .*\\은 앞의 모든 백 슬래시도 먹습니다.
  • 마지막 두 분리 문자 //가 비어 있으므로 검색 파트에서 일치하는 모든 것이 삭제됩니다.

첫 줄만 필요합니까, 아니면 모든 파일에 대해해야합니까?
kingcobra1986

첫 번째 줄 @ kingcobra1986이 필요합니다. 다른 줄은 출력 일뿐입니다. *모든 파일과 일치하지만이를 G*완료로 변경하겠습니다. 이제는 G현재 디렉토리에서 시작하는 모든 파일과 일치 하며 한 번에 모두 작동합니다. 그들이 여러 디렉토리에 있다면 우리는 다양한 방법으로 그 문제를 다룰 수 있습니다
Zanna

효과가있었습니다. 그 라인에서 정확히 무슨 일이 일어나는지 설명 할 수 있습니까?
kingcobra1986

1
@ kingcobra1986 죄송합니다. 메모를 추가했습니다. 그렇지 않다면 더 많은 것을 요청하십시오.
Zanna

하, 나는 .*\\ 탐욕 의 이후 를 사용하는 아이디어를 좋아한다.*
Ziazis

10

쉘 매개 변수 확장을bash 사용하여 순수하게이를 수행 할 수 있습니다 .

${file##*\\}(최근 접두사로 자르기)는 파일 이름의 시작부터 마지막까지 모든 것을 제거합니다 \.

for file in *; do
    mv -v "$file" "${file##*\\}";
done

이름 변경 결과는 다음과 같습니다.

‘G:some\\really\\long\\file\\path\\then\\the\\file_name.mov’ -> ‘file_name.mov’
‘G:some\\really\\long\\file\\path\\then\\the\\filename.txt’ -> ‘filename.txt’
‘G:some\\really\\long\\file\\path\\then\\the\\name1.jpg’ -> ‘name1.jpg’
‘G:some\\really\\long\\file\\path\\then\\the\\name2.png’ -> ‘name2.png’

6

GUI 솔루션을 찾고 있다면 대량 이름 바꾸기 응용 프로그램이 많이 있습니다. Xfce의 기본 파일 관리자 인 Thunar를 제안 합니다. 편리한 대량 이름 바꾸기 도구가 제공됩니다. 터미널에서 다음 명령을 실행하여 Thunar를 설치할 수 있습니다.

sudo apt-get install thunar

아마도 우분투 소프트웨어에서도 설치할 수있을 것입니다.

유틸리티 사용법

  1. Thunar를 설치 한 후 대량 이름 바꾸기 유틸리티를 시작하십시오 .
  2. + 아이콘을 클릭 하고 이름을 바꾸려는 파일을 추가하십시오.
  3. 선택한 파일 목록 바로 아래에있는 드롭 다운 상자를 클릭하고 검색 및 바꾸기를 선택 하십시오 .
  4. 에서 검색 : 상자 입력 G:some\really\long\file\path\then\the\(당신이 없애 싶은 부분)에두고 바꿀 : 상자를 비 웁니다. 새 이름 열 에서 변경 사항을 미리 볼 수 있습니다.
  5. 변경 사항을 적용하려면 파일 이름 바꾸기 버튼을 클릭하십시오 .

검색 및 바꾸기 외에도이 유틸리티는 다음 작업을 지원합니다.

  • 날짜 / 시간 삽입
  • 삽입 / 덮어 쓰기
  • 넘버링
  • 문자 제거
  • 대문자 소문자

노틸러스를위한 것이 없습니까? 이 목적으로 새 파일 브라우저를 설치하도록 제안하는 것은 오히려 과도한 것 같습니다.
Zanna

@Zanna v3.22에는 하나가 있지만 우분투 저장소에서는 여전히 사용할 수 없다고 생각합니다.
pomsky

2
Thunar는 매우 편리하며 다른 파일 브라우저와 공존하는 것처럼 보이므로이 목적으로 설치하는 것이 좋습니다. 그러나 Thunar에서 대량 이름 바꾸기를 수행 하는 방법 에 대한 설명으로이 답변을 확장 할 수 있습니까?
Eliah Kagan

1
@EliahKagan 그리고 그것도 가볍습니다
pomsky

다행스럽게도, 이제 공감할 수 있습니다 (Xubuntu도 가지고 있습니다 :) :
Zanna
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.