由于硬盘问题,我试图将一个分区从一个硬盘转移到另一个硬盘。我正在关注http://www.ibm.com/developerworks/library/l-partplan.html文章。在复制部分,我想忽略一个特定的子目录。如何在复制时记住这一点,我必须保留我的所有者组和时间戳。如果我不忽略特定的子目录,大约需要复制700 GB的数据。
由于硬盘问题,我试图将一个分区从一个硬盘转移到另一个硬盘。我正在关注http://www.ibm.com/developerworks/library/l-partplan.html文章。在复制部分,我想忽略一个特定的子目录。如何在复制时记住这一点,我必须保留我的所有者组和时间戳。如果我不忽略特定的子目录,大约需要复制700 GB的数据。
Answers:
rsync -ax --exclude [relative path to directory to exclude] /path/from /path/to
您可能还希望(或不希望)使用--del
。检查手册页。
通常我使用cpio
如下
cd source_dir; find . -depth | cpio -pdmv dest_dir
由于这是一条管道,因此您可以在中间放置一个“减法过滤器”。
cd sourcedir; find . -depth | grep -v exclude_dir | cpio -pdmv dest_dir
或者您可以将其分为几个步骤,
cd source_dir; find . -depth > files.lst
gedit files.lst # (take out the offending directory and files and save back to files.lst)
cpio -pdmv dest_dir < files.lst
当然,我会先在较小的物体上进行测试,但是您知道了。
您可以编写一个带有循环的简单bash脚本,以忽略您不想复制的特定路径,然后复制其余的路径。另一个解决方案可能是对我们的正则表达式。您可以在这里阅读bash脚本-> http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html Regex教程在此处-> http://www.regular-expressions。信息/
您可以暂时将(mv
)大子目录移动到其他位置,进行复制,然后还原该子目录吗?我看不到cp
这样做的直接选择。
那为什么不只是
cp -Rv [SRC] [DEST] | grep -v [EXCLUDE]