【问题标题】:Copy or move from nth level subfolder to another directory or folder从第 n 级子文件夹复制或移动到另一个目录或文件夹
【发布时间】:2020-07-14 08:42:05
【问题描述】:

我们有一个软件,它可以添加一个wav 文件,并按日期将它放在一个文件夹中,该文件夹被埋在几个子文件夹下。

例如:

home/user/music/group1/person1/todays date/wav file

home/user/music/group1/person1/yesterdays date/wav file

home/user/music/group1/person2/todays date/wav file

home/user/music/group1/person2/yesterdays date/wav file

此外,person(n) 文件夹是动态的,这意味着如果软件发现有人使用该设备并创建该文件夹,则会自动创建该文件夹。例如,如果一个新用户正在使用该软件,它将创建home/user/music/group1/person3/

如何从 person(n) 文件夹开始移动或复制并将它们移动到新文件夹,例如 home/user/new/person1.. home/user/new/person2..

由于 person(n) 文件夹是动态的,我不能只执行 cp person1 newdirectory 这样的命令 我所做的是在 group1 文件夹下找到所有 wav 文件并将 cp 到新文件夹,但它复制了完整路径。

find /home/user/music/group1 -name "*.wav" -type f -exec cp --parents \{\} /home/user/new \;

如果我删除--parents,它只会将文件复制到新文件夹。如何从 person(n) 文件夹开始复制到新文件夹?

【问题讨论】:

  • 所以实际上,您只需要从路径中提取 person(n) 元素。既然你知道父目录的结构,那么你就可以把一个目录的标准副本复制到另一个目录吗?

标签: linux bash ubuntu copy move


【解决方案1】:

感谢@RamanSailopal,我让它与find /home/user/music/group1/ -name "person*" -type d -exec cp -pR {}/ /home/user/new \;一起工作

【讨论】:

  • 如果person 中的n 是一个整数/数字,您可以使用person[0-9]*
  • @Jetchisel 是的,n 是一个数字,我会考虑你的建议,谢谢!
猜你喜欢
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 2010-09-08
  • 2018-11-24
  • 1970-01-01
相关资源
最近更新 更多