vi 또는 터치를 통해 존재하지 않는 디렉토리를 강제로 생성하시겠습니까?

vi 또는 터치를 통해 존재하지 않는 디렉토리를 강제로 생성하시겠습니까?

필요에 따라 상위 디렉터리를 생성하는 명령 -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이 경우 존재하지 않는 디렉토리에 또는 을 .ssh사용하여 파일을 생성하고 싶습니다 .vitouch

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

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

mkdir .ssh또는 없이 이 작업을 수행할 수 있습니까 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와 마찬가지로 dirname(head)을 반환합니다. 권한을 지정하는 방법을 찾아야 하지만 자주 필요한 경우 이를 키, 키 조합 또는 사용자 정의 기능에 매핑할 수 있습니다(여기서는 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자유롭게 답변을 업데이트하십시오.

관련 정보