Bash命令用于在必要时创建新文件及其父目录

时间:2014-07-10 01:58:22

标签: bash shell

使用-p--parents)选项,mkdir会根据需要创建父目录。

touchvim>可以在bash中创建新文件,但仅限于父目录存在时。

如何在一个命令中创建新文件及其父目录?就像-pmkdir所做的那样

3 个答案:

答案 0 :(得分:14)

安装是你的朋友:

install -Dv /dev/null some/new/path/base-filename

答案 1 :(得分:12)

这是一个shell 函数

mkfileP() { mkdir -p "$(dirname "$1")" || return; touch "$1"; }

# Sample call
mkfileP "./newSubDir/test.txt" && echo 'created or touched' || echo 'failure'

例如,您可以将它放在shell配置文件中。

或者,将其实现为脚本(根据需要添加错误处理和命令行帮助):

#!/usr/bin/env bash

mkdir -p "$(dirname "$1")" || exit
touch "$1"

答案 2 :(得分:0)

我最近为此直接创建了一个脚本:https://gist.github.com/zinovyev/1f8caf9e886de610e2dd2c22a4ef7d69

以下是其工作方式的几个示例:

$ tt foo/bar/file  # => Will create a file "/current/path/foo/bar/file"
$ tt foo/bar/dir/ # => Will create a directory "/current/path/foo/bar/dir"

在路径末尾注意/。这样便可以确定路径的最后一块应该是目录还是文件。