在单个命令行中创建文件以及嵌套目录

时间:2017-12-28 05:52:16

标签: linux file nested directory mkdir

我想在目录abc.php中创建一个尚不存在的文件a/b/c。我需要使用像mkfile a/b/c/abc.php这样的单个命令来执行此操作。我检查了this解决方案,该解决方案建议像mkfile a/b/c abc.php这样的解决方案。

与此同时,我希望在编辑器中打开文件,使用nano命令。

通常在遵循教程的同时,我们必须创建文件并复制并粘贴文件目录而不进行编辑,这样可以简化生活。

1 个答案:

答案 0 :(得分:2)

如果我理解正确并且您只是希望能够发布command foo/bar/baz/myfile.txt(或类似内容)并创建目录foo/bar/baz并在{中创建并打开新文件myfile.txt {1}}所有这一个命令,然后你需要一个简短的脚本,例如

将其设为可执行文件,例如nano,然后致电mv nanoopen.sh scriptname; chmod 0755 scriptname ./scriptname。如果你把它放在路径中,你可以跳过./ too

将它放在路径中的简单方法是在foo/bar/baz/file.txt中创建一个符号链接,通常在默认路径中。 所以你可以(有时需要超级) /usr/local/bin Echo $ PATH 确认 / usr / local / bin 在您的路径中,然后像任何程序,scriptname参数一样使用它。 或者在某些发行版中,您只需将其添加到具有root访问权限的ln -s /path/to/nanoopen.sh /usr/local/bin/scriptname文件夹即可。

/bin

示例使用/输出

#!/bin/bash

[ -z "$1" ] && {  ## validate one argument given
    printf "error: insufficient input\nusage: %s filename\n" "${0##*/}"
    exit 1    
}

[ "$1" != "${1##*/}" ] && mkdir -p "${1%/*}"  ## if it has directories, create
touch "$1"                                    ## create the file

exec nano "$1"     ## open in nano