이름에 공백이 포함된 파일 이름 변경

이름에 공백이 포함된 파일 이름 변경

mv이유 는 모르겠지만 명령으로 이 파일 이름을 변경하면 not a directory.

-bash-4.1# mv {{ THEME SANITIZED }}.hacks.css myomega.hacks.css

답변1

mv "{{ THEME SANITIZED }}.hacks.css" myomega.hacks.css작동합니다.

답변2

쉘 구문으로 해석되지 않고 파일 이름의 일부로 중괄호와 공백을 의미한다는 것을 쉘에 알려야 합니다.

작은따옴표 안에 특수 문자가 포함된 파일 이름을 입력할 수 있습니다. 이는 작은따옴표 자체를 제외한 모든 문자에 적용됩니다. 이는 스크립트에서 가장 간단한 방법입니다.

mv '{{ THEME SANITIZED }}.hacks.css' myomega.hacks.css

작은따옴표로 묶인 문자열 안에 작은따옴표를 사용해야 하는 경우 4문자 시퀀스를 사용할 수 있습니다 '\''.

mv 'It'\'s' wierd' this_is_weird

또는 문자 앞에 백슬래시를 배치하면 문자의 특별한 의미가 상실됩니다. 특별한 의미가 없는 문자 앞에 백슬래시를 넣는 것은 아무런 해가 없지만 확실히 불필요한 입력입니다.

mv \{\{\ THEME\ SANITIZED\ \}\}.hacks.css myomega.hacks.css

파일 이름이 변수에서 나온 경우 변수 확장 주위에 큰따옴표를 사용하여 특수 문자를 유지합니다( 와 같은 기본 변수의 경우 mv $source $destination변수 값의 일부 특수 문자가 확장됩니다).

source='{{ THEME SANITIZED }}.hacks.css'
destination=myomega.hacks.css
mv "$source" "$destination"

명령줄에서 이러한 파일 이름을 입력하는 가장 쉬운 방법은 완성에 의존하는 것입니다. 최소한 첫 번째 문자를 입력한 후 를 눌러야 합니다 Tab.

mv \{Tab
mv \{\{\ THEME\ SANITIZED\ \}\}.hacks.css 

답변3

큰따옴표를 사용하여 슬래시로 이스케이프하거나 이스케이프할 수 있습니다. 예를 들어
큰따옴표를 사용하십시오.

mv "{{ THEME SANITIZED }}.hacks.css" myomega.hacks.css

슬래시를 사용하세요:

mv \{\{\ THEME\ SANITIZED\ \}\}.hacks.css myomega.hacks.css

멋진 기능도 있고, 대시로 시작하는 디렉터리를 삭제하거나 이름을 바꾸는 방법을 모르는 사람도 있습니다. 대시를 사용하면 됩니다. :D
예:

mkdir -directory_with_dash
rm -r -- -directory_with_dash

관련 정보