파일 이름에 이상한 문자가있는 것은 좋지 않은 생각이지만 할 수 있습니다.
mv somefile.txt "foo
bar"
( mv somefile.txt "$(printf "foo\nbar")"
또는 할 수도 있습니다 mv somefile.txt foo$'\n'bar
... 세부 사항은 쉘에 따라 다릅니다. 사용하고 있습니다 zsh
)
globbing 에 대해 자세히 읽어보십시오 ( 예 : glob (7)) . 세부 사항은 쉘마다 다를 수 있습니다. 그러나이 이해 /bin/mv
를 통해, (쉘에서) 주어진 에서 execve (2) , 확장 인수의 배열 : 인수 확장과 글 로빙은 호출 쉘의 책임입니다.
작은 C 프로그램을 코딩하여 동일한 작업을 수행 할 수도 있습니다.
#include <stdio.h>
#include <stdlib.h>
int main() {
if (rename ("somefile.txt", "foo\nbar")) {
perror("rename somefile.txt");
exit(EXIT_FAILURE);
};
return 0;
}
에 위의 프로그램을 저장 foo.c
하고 컴파일 gcc -Wall foo.c -o foo
한 다음 실행하십시오../foo
마찬가지로 Perl, Ruby, Python, Ocaml 등에서 비슷한 스크립트를 코딩 할 수 있습니다.
그러나 그것은 나쁜 생각입니다. 파일 이름에 줄 바꿈을 피하십시오 (사용자를 혼란스럽게하고 많은 스크립트를 손상시킬 수 있음).
실제로 파일 경로에 강조되지 않은 문자, 숫자 및 +-/._%
문자 ( /
디렉토리 구분자가있는) 만 사용하는 것이 좋습니다 . "숨겨진"파일 (로 시작 .
)은주의해서 사용해야합니다. 파일 이름에 어떤 종류의 공간을 사용하는 것은 실수라고 생각합니다. 대신 밑줄을 사용하여 (예를 들어 foo/bar_bee1.txt
) 또는 마이너스 (예 foo/bar-bee1.txt
)