Nis*_*ish 11 command-line directory
我正在尝试从 A 到 Z 创建一个目录树,其中下一个目录位于当前目录中。
例如:B 在 A 内,C 在 B 内,依此类推。
-A
--B
---C
----...Z
Run Code Online (Sandbox Code Playgroud)
关于如何以自动化方式完成它的任何线索?
mur*_*uru 25
使用mkdir,printf和 bash 的大括号扩展:
$ mkdir -p "$(printf "%s/" {A..Z})"
$ tree A
A
??? B
??? C
??? D
??? E
??? F
??? G
??? H
??? I
??? J
??? K
??? L
??? M
??? N
??? O
??? P
??? Q
??? R
??? S
??? T
??? U
??? V
??? W
??? X
??? Y
??? Z
25 directories, 0 files
Run Code Online (Sandbox Code Playgroud)
{A..Z}扩展到A B ... Z,printf "%s/"/在它们之后打印参数,所以我得到A/B/...Z/mkdir -p创建A/B/.../Z与创建所需的任何父目录的目录。在非常简单的层面上,您可以利用{A..Z}扩展生成所有字母,然后迭代生成并输入每个字母:
~/test_directory$ for d in {A..Z}; do mkdir "$d"; cd "$d"; done
~/test_directory/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z$
Run Code Online (Sandbox Code Playgroud)
正如您在我的提示输出中看到的,现在您已经完全链接了目录。
但是,如果实际的目录名称与字母表不同,则您必须以某种方式提供目录名称列表,也许是通过一个文件,您可以在该文件上进行迭代并再次执行相同的过程。基本上,这
while IFS= read -r dir_name;do mkdir "$dir_name"; cd "$dir_name" ;done < directory_list.txt
Run Code Online (Sandbox Code Playgroud)