linux 如何创建级联的文件

比如我想建立一个 a/b/index.txt 这种
使用 mkdir 可以创建级联的文件夹
mkdir -p a/b 可以创建 a 文件夹,在 a 文件夹下的 b 文件夹
使用 touch 可以创建文件

但是现在想直接在 a 文件夹下新建 b 文件夹,在 b 文件夹下新建 index.txt

想问下有啥好的命令可以使用吗?

阅读 5.3k
3 个回答

我自己来吧

  1. 首先创建级联文件夹,mkdir 有个 -p 的参数 mkdir -p a/b
  2. 创建了级联文件夹后,进入到级联文件夹的,可以使用 cd $_
  3. 进入了级联文件夹后创建文件,使用 touch index.txt 的方式
  4. 所以以上的命令联合起来就是 mkdir -p a/b && cd $_ && touch index.txt 或者不使用cd $_ 的命令,mkdir -p a/b && touch a/b/index.txt

感觉这样敲的命令还是有点多,还得找找有没有更简便的方式,比如类似 oh-my-zshell 这种有没有快捷键啥的,或者自己自定义某些命令,然后使用 alias 接收参数来创建的

就是能不能更智能一点,比如已经有a文件了,那么直接在 a 文件夹下创建b文件夹,而不是在mkdir a/b 的时候,会出现已经创建了 a 文件夹报错的问题。
也就是

  1. 如果有 a 文件夹,进入 a 文件夹,没有的话就创建 a 文件夹
  2. 如果有 a/b 文件夹,就进入 a/b 文件夹,没有的话就创建 a/b 文件夹
  3. 如果有 a/b/index.txt 就提示是否覆盖,没有的话,就直接创建 a/b/index.txt

使用for循环

mkdir a/b && touch a/b/index.txt

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题