将文件/文件夹移动到新位置并在目的地保留其父文件夹结构
问题描述:
寻找可以做到以下操作的自动方法(bash脚本)。将文件/文件夹移动到新位置并在目的地保留其父文件夹结构
我必须将大量的某些文件和文件夹移动到另一个新位置,但需要确保通过维护其父文件夹结构来复制这些文件。
源Example 1: [primary] > [folder-a] > [folder-a1] > [xyz_out]
Example 2: [primary] > [folder-b] > [folder-b1 ] > a.pdf
文件夹xyz_1和文件a.pdf如下所示被复制到辅助文件夹。
目的地实施例1: [二次]> [文件夹-A]> [文件夹-A1]> [xyz_out]
实施例2: [二次]> [文件夹-b]> [folder_b1]> a.pdf
注:[Primary]位置包含很多文件,但我只需要复制xyz_out和a.pdf文件。 xyz_out文件夹在主要位置的许多文件夹中是通用的。
答
假设[xyz_out]是一个目录,您可以执行以下命令来满足您的要求。相应地调整您的[主要]和[次要]目录路径。使用完整的系统路径,以便您从任何地方运行此脚本。
例如:转存目录保留目录结构
find /<fullpath>/[primary] -type d -name "[xyz_out]" | while read f
do
path=$(dirname "$f" | sed -re 's/[primary](\/)?/[secondary] \1/')
echo "$f -> $path"
mkdir -p "$path"
mv "$f" "$path"
done`
例2:移动文件保留目录结构
find /<fullpath>[primary] -type f -name "*.pdf" | while read f
do
path=$(dirname "$f" | sed -re 's/[primary](\/)?/[secondary] \1/')
echo "$f -> $path"
mkdir -p "$path"
mv "$f" "$path"
done
请[编辑]你的问题,以显示[你有这么远的代码( http://whathaveyoutried.com)。你至少应该包括一个你遇到问题的代码大纲(但最好是[mcve]),然后我们可以尝试帮助解决具体问题。你还应该阅读[问]。 –