如果我有目录
dir_1/ dir_2/ dir_3/
如何使用单个命令在所有这些目录下创建同名目录?
答案 0 :(得分:5)
这是给你的一个命令:
如果您希望子目录与父目录具有相同的名称:
for i in ./dir_*; do mkdir -p "${i}/${i}"; done
如果您希望子目录共享相同的新名称。
for i in ./dir_*; do mkdir -p "${i}/new_dir_name"; done
答案 1 :(得分:0)
您应该使用Brace Expansion
mkdir dir_{1..3}/newDir
当然,如果你事先知道dirs的名字,那就可以了。 但不适用于'sh'。
答案 2 :(得分:0)
您可以使用此find
:
find . -maxdepth 1 -type d -name 'dir_*' -exec mkdir {}/{} \;
<强>测试强>
$ ls
dir_1 dir_2 dir_3 file1 file2 file3
$ find . -maxdepth 1 -type d -name 'dir_*' -exec mkdir {}/{} \;
$ ls dir_1/
dir_1
答案 3 :(得分:0)
使用find
即可:
find . -type d -maxdepth 1 -execdir mkdir -p "{}/{}" \;
如果它不存在,这将创建directory/directory
。