嘟嘟社区

linux如何创建含有多级目录的文件?


举个例子,我现在要在  /root/filebrowser/ 文件下创建文件 filebrowser.db

正常情况下,是要先创建文件夹,在进入文件夹,在创建文件

  1. mkdir -p /root/filebrowser/
  2. cd /root/filebrowser/
  3. cat > filebrowser.db

复制代码

以上步骤能不能一步完成?比如
xx /root/filebrowser/filebrowser.db  直接就创建好了,xx就是类似 touch cat 这样的命令

本帖最后由 liugogal 于 2022-5-11 15:42 编辑

匿了,这方法好像不行,linux文件夹和文件其实是同级的吧,如果只是指定一个目录,系统可以判断这个是路径还是文件吗

插眼学习
自己写一个shell脚本xx在/usr/bin/下面,不就可以xx /root/filebrowser/filebrowser.db
意思直接输入路径创建对应的目录
本帖最后由 emptysuns 于 2022-5-10 23:00 编辑

用alias

  1. alias nodirtouch=’function createFile(){ str=$1;path=${str%/*};if [ ! -d "$path" ];then mkdir -p $path;fi;touch $str; };createFile’
  2. ># nodirtouch /root/test/test.sh

复制代码

这样就会自动创建目录加touch一个新文件

whl32 发表于 2022-5-10 22:34
自己写一个shell脚本xx在/usr/bin/下面,不就可以xx /root/filebrowser/filebrowser.db

说的也对,但是强迫症不把sh脚本放到/usr/bin下,用alias比较舒服

本帖最后由 rem 于 2022-5-11 16:21 编辑
  1. mkdir -p /root/filebrowser && touch /root/filebrowser/filebrowser.db

复制代码

多个文件夹和文件这样来

  1. mkdir -p /root/{dir1,dir2,dir3} && touch /root/dir1/{file1,file2,file3}

复制代码

rem 发表于 2022-5-11 16:19
多个文件夹和文件这样来

谢谢

rem 发表于 2022-5-11 16:19
多个文件夹和文件这样来

{file1,file2,file3} 多文件的语法 这个要用大括号包起来以及用逗号隔开吗