Bash 중괄호 확장으로 파일 이름의 일부가 제거됩니다.

Bash 중괄호 확장으로 파일 이름의 일부가 제거됩니다.

파일 이름에 하위 문자열을 추가하는 대신 bash 중괄호 확장을 사용하여 제거할 수 있습니까?

다음 기술을 사용하여 파일 이름에 접미사를 추가할 수 있는 다음 시나리오를 고려하십시오.

mv offlineimap.conf{,.minimal}

특히 이름을 바꾸는 것이 offlineimap.conf매우 offlineimap.conf.minimal편리합니다. 백업 파일을 만드는 데 사용됩니다(예: swith .bak확장명).

그러나 다음과 같이 주어진 파일 이름에서 하위 문자열을 뺄 수도 있습니다.

mv offlineimap.conf.minimal{,-minimal}

-여기서는 하위 문자열을 빼기 위해 가상의 특수 문자를 사용하고 있습니다 .

나는 기존 파일 이름에서 접미사를 제거하는 두 번째 기술을 원합니다 offlineimap.conf..minimal

답변1

중괄호 명령을 사용하여 접미사를 제거하려면(예: .minimal파일에서 접미사 제거) 다음을 offlineimap.conf.minimal사용합니다.

mv offlineimap.conf{.minimal,}

지원 연장에 대해 자세히 알아보기

여기서 아이디어는 중괄호 확장이 중괄호 사이에 쉼표로 구분된 문자열 목록을 사용하여 일련의 문자열을 생성한다는 것입니다.

$ echo a{b,c}
ab ac

처음 사용할 때 두 문자열 중 첫 번째 문자열은 비어 있습니다.

$ echo a{,c}
a ac

원하는 솔루션에서는 두 문자열 중 두 번째 문자열이 비어 있도록 전환합니다.

$ echo a{b,}
ab a

또는:

$ echo offlineimap.conf{.minimal,}
offlineimap.conf.minimal offlineimap.conf

답변2

John1024의 답변 외에도 (댓글을 달 수 없습니다).

이 방법을 시도하고 지름길을 찾았습니다.

  1. 자동 완성 기능 사용 - Tab 키를 눌러 잘라야 할 전체 파일 이름을 입력하세요.

    offlinei(tab key pressing) -> get full name -> offlineimap.conf.minimal

  2. Enter를 누른 ,}다음 한 단어 뒤로 이동한 다음( Alt + bBash에서) {,

우리는 우리에게 필요한 공사를 받고 있습니다. offlineimap.conf.{minimal,}

관련 정보