![viまたはtouchを介して存在しないディレクトリを強制的に作成しますか? [コピー]](https://linux33.com/image/178513/vi%E3%81%BE%E3%81%9F%E3%81%AFtouch%E3%82%92%E4%BB%8B%E3%81%97%E3%81%A6%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%AA%E3%81%84%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E5%BC%B7%E5%88%B6%E7%9A%84%E3%81%AB%E4%BD%9C%E6%88%90%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
-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
vi
touch
Authorized_keys は、ディレクトリではなくファイルです。したがって、mkdir -p .ssh/authorized_keys
Authorized_keysはファイルではなくディレクトリとして生成されるため、ここではコマンドは適用されません。
wolf@linux:~$ ls .ssh
ls: cannot access '.ssh': No such file or directory
wolf@linux:~$
mkdir .ssh
ORなしでこれを行うことはできますか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
作成されます。.ssh
known_hosts
からディレクトリを作成するには、vi
次のこともできます。
:!mkdir -m a=,u=rwx .ssh
ではvim
できます
:!mkdir -pm a=,u=rwx %:h
またはあなた自身のものを使用してくださいmkdir()
:
:call mkdir(expand("%:h"),"p",0700)
%
現在編集されているファイルがある場所では、:h
csh / zshと同様にディレクトリ名(ヘッダ)を返します。頻繁に必要に応じて権限を指定する方法を見つける必要がありますが、キー、キーの組み合わせ、またはカスタム機能にマッピングできます。したがって、a=,u=rwx
所有者0700
だけが読み取り+書き込み+検索権限を持ちます。それ)。
mkdir+touch については、以下を参照してください。Zsh:1つのコマンドでディレクトリを作成し、その中にファイルを作成する方法は?
答え2
vi
AFAIK、ディレクトリを強制的に使用または作成することはできませんtouch
。
mkdir
これを生成するには、有効または-p
使用するにはフラグを指定する必要があります。
-p, --parents no error if existing, make parent directories as needed
vi
またはを使用してこれを行う方法がある場合は、touch
いつでも回答を更新してください。