使用Linux创建嵌套目录和文件
我想使用linux命令创建父文件夹、子文件夹和孙子文件夹。因此,父文件夹将是音乐。在音乐文件夹中,我有两个文件夹,分别是摇滚乐和古典乐。在摇滚乐里面我想有两个txt文件,朋克和哥特式,在古典乐里面我想有两个txt文件,巴洛克和早期。如何在没有“cd”命令的情况下制作这些。我曾考虑使用“mv”命令,但除了逐个移动文件之外,还有其他更好的方法吗?我把图表放在下图中。谢谢使用Linux创建嵌套目录和文件,linux,Linux,我想使用linux命令创建父文件夹、子文件夹和孙子文件夹。因此,父文件夹将是音乐。在音乐文件夹中,我有两个文件夹,分别是摇滚乐和古典乐。在摇滚乐里面我想有两个txt文件,朋克和哥特式,在古典乐里面我想有两个txt文件,巴洛克和早期。如何在没有“cd”命令的情况下制作这些。我曾考虑使用“mv”命令,但除了逐个移动文件之外,还有其他更好的方法吗?我把图表放在下图中。谢谢 您可以提供根文件夹的完整路径。然后,您不需要在任何目录中插入cd user@user-Inspiron:~$ mkdir root
您可以提供根文件夹的完整路径。然后,您不需要在任何目录中插入
cd
user@user-Inspiron:~$ mkdir root_music
user@user-Inspiron:~$ mkdir root_music/category1
user@user-Inspiron:~$ mkdir root_music/category2
user@user-Inspiron:~$ touch root_music/category1/f1.txt
user@user-Inspiron:~$ touch root_music/category1/f2.txt
user@user-Inspiron:~$ touch root_music/category2/f1.txt
user@user-Inspiron:~$ touch root_music/category2/f2.txt
这给了你:
user@user-Inspiron:~$ tree root_music/
root_music/
├── category1
│ ├── f1.txt
│ └── f2.txt
└── category2
├── f1.txt
└── f2.txt
2 directories, 4 files
您可以提供根文件夹的完整路径。然后,您不需要在任何目录中插入
cd
user@user-Inspiron:~$ mkdir root_music
user@user-Inspiron:~$ mkdir root_music/category1
user@user-Inspiron:~$ mkdir root_music/category2
user@user-Inspiron:~$ touch root_music/category1/f1.txt
user@user-Inspiron:~$ touch root_music/category1/f2.txt
user@user-Inspiron:~$ touch root_music/category2/f1.txt
user@user-Inspiron:~$ touch root_music/category2/f2.txt
这给了你:
user@user-Inspiron:~$ tree root_music/
root_music/
├── category1
│ ├── f1.txt
│ └── f2.txt
└── category2
├── f1.txt
└── f2.txt
2 directories, 4 files
这假设您使用的是
bash
,或者其他支持{}
符号的shell:
mkdir -p music/{rock/{punk,goth},classical/{baroque,early}}
如果你想的话,可以使用所有的帽子,但这似乎太过分了
--编辑--
在上面,我错误地认为朋克
,哥特
等应该被创建为目录。如果希望它们是文件(没有内容),可以执行以下操作:
mkdir -p music/{rock,classical}
touch music/{rock/{punk,goth},classical/{baroque,early}}
不过,触摸
似乎有些奇怪。最好在您实际提供内容之前延迟创建文件。这假设您使用的是bash
,或者其他支持{}
符号的shell:
mkdir -p music/{rock/{punk,goth},classical/{baroque,early}}
如果你想的话,可以使用所有的帽子,但这似乎太过分了
--编辑--
在上面,我错误地认为朋克
,哥特
等应该被创建为目录。如果希望它们是文件(没有内容),可以执行以下操作:
mkdir -p music/{rock,classical}
touch music/{rock/{punk,goth},classical/{baroque,early}}
不过,触摸似乎有些奇怪。最好在您实际提供内容之前延迟创建文件。我认为答案与您的问题更相关
mkdir -p B && touch B/myfile.txt
我认为答案与你的问题更相关
mkdir -p B && touch B/myfile.txt
我的想法完全正确。但OP要求将叶子作为常规文件。有什么比创建一个函数touch-p
更好的主意吗?该函数在参数的dirname上调用mkdir-p
,然后在参数本身上调用touch
?@raphinesse啊,我没有注意到punk
,goth
,等等都是常规文件touch
可能不是正确的做法,因为我认为这些文件实际上将包含内容。我想说,它们应该由OP用来生成内容的任何机制创建。我的想法正是如此。但OP要求将叶子作为常规文件。有什么比创建一个函数touch-p
更好的主意吗?该函数在参数的dirname上调用mkdir-p
,然后在参数本身上调用touch
?@raphinesse啊,我没有注意到punk
,goth
,等等都是常规文件touch
可能不是正确的做法,因为我认为这些文件实际上将包含内容。我想说,它们应该由OP用来生成内容的任何机制创建。