Bash 脚本 - 查找文件并操作路径

Bash 脚本 - 查找文件并操作路径

因此我尝试编写一个脚本来实现以下目标:

  1. 从文本文件读取文件 UID
  2. 根据 UID 搜索文件位置
  3. 将文件(包括其路径结构)复制到新位置。

我们目前正在手动传输一些媒体,我想将其自动化。每个媒体都有一个 UID,它们都位于一个文件中。媒体位于特定位置,我知道父目录在哪里,但不知道每个媒体项目的单独目录。

目前我的方法如下:

  • 循环直到文件末尾显示 UID
  • 根据 UID 查找匹配媒体的路径
  • 输出路径到临时文件,因为媒体目录的结构很重要,路径结构的示例为 '../Medias/Shirts/shirtA.jpg'、'../Medias/Shirts/shirtA_1.jpg' 或 '../Medias/Pants/pantsA.jpg'
  • 使用临时文件将媒体复制到新位置,即“cp $MEDIAPATH/$UID* $TARGET”

我有两个问题:

  1. 有很多媒体项目,我正在使用 find 和 dirname,并使用一些较小的样本数据进行测试,我确定有比我更有效的方法来做到这一点?FILEDIR="$(dirname "$(find ${MEDIADIR} -name "$UID" )")"
  2. 现在要将媒体复制到新位置,我不确定如何执行此操作,因为我对整个路径不感兴趣,即媒体项目的路径可能是“/home/user/media/pants/pantsA.jpg”而我只需要/pants/,因为复制时我想维护这个结构,即“../targetDIR/pants/”等?

相关内容