复制文件和目录而不包含文件内容


18

有没有一种方法可以复制包含文件但不包含文件内容的目录结构。我的意思是我想要具有相同文件名的目录,但将它们留为空白/空。我用某种编程语言编写的示例应用程序很少,我想用自己的样式重写它们,但要保持它们在文件中的组织方式。

我将不胜感激。

Answers:


36

man cp

--attributes-only不复制文件数据,仅复制属性

因此,如果您要复制其中的所有文件夹和文件 somedirectory

cp -R --attributes-only somedirectory destinationdirectory


这正是我所需要的。非常感谢你。
dagi12

4
+1是因为我认为没有人已经实现了这一点-真的很惊讶。
mgarciaisaia 2015年

@mgarciaisaia,当我今天早上检查手册页时,我只是为您感到惊讶=)
Sergiy Kolodyazhnyy

10

很好,Ubuntu cp具有此功能,但是如果您发现自己没有使用该功能(cp例如,没有BSD风格,那么OS X也没有),则使用它非常容易find。这是两条线(出于可读性):

% cd original_dir
% find . -type d -exec mkdir -p ../copy_dir/{} \;
% find . -type f -exec touch ../copy_dir/{} \;

如果copy_dir已经存在,则可以跳过该-p参数,mkdir因为find它将自上而下遍历目录树。对于大型作业,您可以通过终止命令来节省大约一毫秒的时间,+而不是\;如果您find支持的话(可能的话)。

编辑:忽略了处理符号链接上面的命令,可与的第三轮被复制find终止这一带+):

% find . -type l -exec cp -R {} ../copy_dir/{} \;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.