명령줄을 통해 FTP를 사용하고 있는데 두 가지 문제가 발생합니다. 다음과 같은 폴더의 이름을 바꾸거나 폴더를 입력할 수 없습니다.
dir /home/folder1/Human (2012)
나는 시도했다:
cd ~/folder1/Human\ (2012)
여기서 다음과 같은 메시지를 받습니다 the folder does not exist
.
mv ~/folder1/Human\ (2012)
이 경우 다음과 같은 메시지를 받습니다.
syntaxfailure at (
이 문제를 어떻게 해결할 수 있나요?
답변1
경로를 큰따옴표로 묶을 수 있습니다.
cd ~/"folder1/Human (2012)"
(
또는 , )
및 (공백) 에 대한 이스케이프 시퀀스를 제공해야 합니다 (특수 문자이므로).
cd ~/folder1/Human\ \(2012\)
그리고
mv ~/"folder1/Human (2012)"
이스케이프 시퀀스 사용:
mv ~/folder1/Human\ \(2012\)
답변2
\
당신은 공간 이전 에 대한 올바른 생각을 가지고 있습니다 . 이는 괄호를 포함한 모든 특수 문자에 적용됩니다. 열린 괄호 앞에 백슬래시를 넣고 닫는 괄호 앞에 또 다른 백슬래시를 넣으면 작동합니다.
이러한 경우에는 탭 완성이 도움이 됩니다. 파일 이름을 입력하기 시작한 다음 을 누르면 Tab필요한 곳에 백슬래시를 삽입하여 파일 이름의 나머지 부분이 자동 완성됩니다. (어떤 파일을 의미하는지 명확하게 알 수 있을 만큼 파일 이름을 충분히 입력하지 않은 경우 bash는 가능한 한 많은 파일 이름을 자동 완성합니다. 탭을 두 번 누르면 가능한 파일 이름 완성 목록이 표시됩니다.)
답변3
이를 수행하는 방법은 "
파일이나 디렉토리를 지정할 때 표시를 사용하는 것이라는 snoop의 의견에 동의합니다.
그러나 이름을 바꿔야 하는 디렉토리가 많이 있는 경우 를 사용하여 rename
더 친숙한 이름으로 이름을 바꿀 수 있습니다. 이름 바꾸기는 파일 및 디렉터리 이름 바꾸기를 sed
제외 하고 유사하게 작동 하지만 일반적으로 파일 내용을 편집하는 데 사용됩니다. 예는 다음과 같습니다.rename
sed
rename 's/ //g;s/\(//g;s/\)//g' ~/folder1/*
따라서 다음 디렉터리가 다음 위치에 있는 경우 ~/folder1
:
Human (2012)
Human (2011)
Human (2010)
대신 다음과 같이 이름이 변경됩니다.
Human2012
Human2011
Human2010
자세한 내용을 보려면 다음 명령을 실행하십시오.
man rename