复制文件和目录(不含文件内容)

复制文件和目录(不含文件内容)

有没有办法复制带有文件但不带有内容的目录结构。我的意思是我想要完全相同的目录和文件名,但保留它们为空白。我有一些用某种编程语言编写的示例应用程序,我想用自己的风格重写它们,但保留它们在文件中的组织方式。

如能得到任何帮助我将非常感激。

答案1

man cp

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

因此,如果您想复制somedirectory

cp -R --attributes-only somedirectory destinationdirectory

答案2

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/{} \;

相关内容