创建新文件时创建父目录

创建新文件时创建父目录

我知道这mkdir -p /path/to/new/directory将创建一个新目录以及父目录(如果需要)。

如果我必须创建一个新文件及其父目录(其中部分或全部父目录不存在),我可以使用mkdir -p /path/to/directory && touch /path/to/directory/NEWFILE.但是,还有其他命令可以实现此目的吗?

答案1

AFAIK,没有这样的标准,但你可以自己做:

ptouch() {
  for p do
    _dir="$(dirname -- "$p")"
    mkdir -p -- "$_dir" &&
      touch -- "$p"
  done
}

然后你可以这样做:

ptouch /path/to/directory/file1 /path/to/directory/fil2 ...

答案2

有些系统有一个install命令可以被告知创建丢失的路径组件。

随着 GNU 的实现install

install -DTm644 /dev/null foo/bar/baz

将创建一个baz具有权限 0644 的空常规文件,如果丢失,将创建foofoo/bar目录(无论 umask 为何,权限为 0755)。

相关内容