vi 또는 touch를 통해 존재하지 않는 디렉토리를 강제로 생성하시겠습니까? [복사]

vi 또는 touch를 통해 존재하지 않는 디렉토리를 강제로 생성하시겠습니까? [복사]

-p명령에는 mkdir필요에 따라 상위 디렉터리를 생성하는 옵션이 있습니다.

wolf@linux:~$ tree
.

0 directories, 0 files
wolf@linux:~$ 
wolf@linux:~$ mkdir dir1/dir2/dir3
mkdir: cannot create directory ‘dir1/dir2/dir3’: No such file or directory
wolf@linux:~$ 
wolf@linux:~$ tree
.

0 directories, 0 files
wolf@linux:~$ 
wolf@linux:~$ mkdir -p dir1/dir2/dir3
wolf@linux:~$ 
wolf@linux:~$ tree 
.
└── dir1
    └── dir2
        └── dir3

3 directories, 0 files
wolf@linux:~$ 

vi아니면 touch명령에 비슷한 기능이 있습니까?

authorized_keys이 경우 존재하지 않는 디렉토리에 파일을 사용하거나 생성하고 싶습니다 ..sshvitouch

Authorized_keys는 디렉터리가 아닌 파일입니다. 따라서 mkdir -p .ssh/authorized_keysAuthorized_keys는 파일이 아닌 디렉터리로 생성되므로 여기서는 명령이 적용되지 않습니다.

wolf@linux:~$ ls .ssh
ls: cannot access '.ssh': No such file or directory
wolf@linux:~$ 

mkdir .sshOR 없이 이것을 할 수 있습니까 mkdir -p .ssh?

wolf@linux:~$ touch .ssh/authorized_keys
touch: cannot touch '.ssh/authorized_keys': No such file or directory
wolf@linux:~$ 

답변1

디렉토리를 생성하려면 ~/.ssh디렉토리가 스스로 생성되도록 하는 것이 가장 좋습니다 ssh. 그러면 디렉토리가 올바른 권한으로 생성될 것임을 알 수 있습니다.

ssh localhost

(또는 :!ssh localhost내부에서 vi)

그리고 localhost에 대한 키를 수락하면 해당 위치에 디렉터리와 파일이 ssh생성 됩니다 ..sshknown_hosts

에서 디렉토리를 생성하려면 vi다음을 수행할 수도 있습니다.

:!mkdir -m a=,u=rwx .ssh

에서는 vim할 수 있습니다

:!mkdir -pm a=,u=rwx %:h

또는 자신만의 것을 사용하세요 mkdir():

:call mkdir(expand("%:h"),"p",0700)

%현재 편집된 파일이 있는 곳에서는 :hcsh/zsh와 마찬가지로 디렉터리 이름(헤더)을 반환합니다. 자주 필요한 경우 권한을 지정하는 방법을 찾아야 하지만 키나 키 조합 또는 사용자 정의 기능에 매핑할 수 있습니다. 따라서 a=,u=rwx소유자 0700만이 읽기+쓰기+검색 권한을 갖습니다. 그것 ).

mkdir+touch의 경우 다음을 참조하세요.Zsh: 하나의 명령으로 디렉터리를 만들고 그 안에 파일을 만드는 방법은 무엇입니까?

답변2

viAFAIK, 디렉토리를 강제로 사용하거나 생성할 수 없습니다 touch.

mkdir이를 생성하려면 을 사용 하거나 -p사용하려면 플래그를 지정 해야 합니다 .

-p, --parents     no error if existing, make parent directories as needed

vi또는 을 사용하여 이를 수행 할 수 있는 방법이 있는 경우 touch언제든지 답변을 업데이트하십시오.

관련 정보