Linux 在查找应用程序中的exec上保留目录结构

Linux 在查找应用程序中的exec上保留目录结构,linux,bash,shell,Linux,Bash,Shell,在linux shell上尝试将文件和文件夹从一个目录移动到另一个目录。下面的命令对我有效,但它不会重新创建目录结构。希望有人能帮忙 find/var/spool/asterisk/monitor-iname.wav”-名称“-in.wav”-名称“*-out.wav”-mtime+11-exec cp{}/mnt/nfs/recordings/monitor\ 注意:监视器文件夹中有各种文件夹和子文件夹。在cp中使用--父文件夹 find /var/spool/asterisk/monitor

在linux shell上尝试将文件和文件夹从一个目录移动到另一个目录。下面的命令对我有效,但它不会重新创建目录结构。希望有人能帮忙

find/var/spool/asterisk/monitor-iname.wav”-名称“-in.wav”-名称“*-out.wav”-mtime+11-exec cp{}/mnt/nfs/recordings/monitor\

注意:监视器文件夹中有各种文件夹和子文件夹。

在cp中使用--父文件夹

find /var/spool/asterisk/monitor -iname ".wav" ! -name "-in.wav" ! -name "*-out.wav" -mtime +11 -exec cp --parents {} /mnt/nfs/recordings/monitor \;

“不重新创建目录结构”的确切含义是什么。您要复制的文件是否存在于
/var/spool/asterisk/monitor
的多个级别?i、 e.在子级别中?因此在/mnt/nfs/recordings/monitor中,我们可以看到所有文件,但不能看到文件复制的原始文件夹或子文件夹。例如,在/var/spool/asterisk/monitor中会有一个像/companyid/date/times这样的文件夹结构,所以您希望将目标目录结构保留为
/mnt/nfs/recordings/monitor/companyid/date/time/
?这是正确的,谢谢。这正是需要的,但我建议通过添加
来保留文件名复制
例如,
“{}”
您最后缺少了一个分号。同意缺少的冒号(已修复),但“{}”周围的引号似乎不必要(带空格的文件名已复制好)。{}的替换是由find处理的,而不是由shell处理的。谢谢各位,无论如何,阻止它创建完整的目录结构,即:“\var\spool\asterisk\monitor”?但是在决定之前,请尝试使用具有特殊字符的文件。已达到dailing投票限制,无法向上投票:(@user3052324:在发出find命令之前,将cd发送到要从中复制的“根目录”,并将“.”作为初始查找目录。