2015-05-30 80 views
0

我试图在现有树创建一个新的文件夹:如何在文件夹的现有树中(每个现有文件夹中)递归地创建文件夹?

find /home/a/Desktop/MyCycles/DavidSilver -type d -exec sh -c '(cd {} && mkdir bin)' ';' 

在Ubuntu中,但我得到的

mkdir: cannot create directory ‘bin’: File exists 

这BTW是不是真正的无限循环,因为该文件夹并不存在于/home/a/Desktop/MyCycles/DavidSilver的每个子文件夹中。

任何想法如何解决这个问题?

感谢

回答

2

假设GNU find(1)

find /home/a/Desktop/MyCycles/DavidSilver -type d -printf '%p/bin\0' | xargs -0 mkdir 

Withtout GNU find(1),但假设目录名称不包含换行符:

find /home/a/Desktop/MyCycles/DavidSilver -type d | \ 
    sed 's!$!/bin!' | \ 
    xargs mkdir 
+0

不行的,我试了一下它只是在屏幕上打印'/ bin/bin/bin ......'。编辑:好吧,它刚刚停止并确实创建了该文件夹,但co德跑了2分钟。 – ron

+0

是的,在大多数文件系统上目录操作是同步的。你无能为力(呃,实际上你可以让它们异步,但是你不应该,如果你关心你的数据的话)。 – lcd047

相关问题