复制没有文件内容的文件和目录

dag*_*i12 19 command-line

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

我将不胜感激任何帮助。

Ser*_*nyy 38

man cp

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

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

cp -R --attributes-only somedirectory destinationdirectory

  • +1 因为我不认为有人已经实现了这一点 - 真的很惊讶。 (4认同)

ale*_*xis 10

很高兴 Ubuntucp有这个功能,但是如果你发现自己在一台没有的机器上(cp例如,BSD 风格没有,所以 OS X 也没有),使用find. 这是一个两行(为了可读性):

% cd original_dir
% find . -type d -exec mkdir -p ../copy_dir/{} \;
% find . -type f -exec touch ../copy_dir/{} \;
Run Code Online (Sandbox Code Playgroud)

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

编辑:上面的命令忽略了处理符号链接,可以用第三次运行复制find不要用终止这个+):

% find . -type l -exec cp -R {} ../copy_dir/{} \;
Run Code Online (Sandbox Code Playgroud)