我有 2 个文件夹。文件夹 1 有一些文件排列在一些子文件夹中。文件夹 2 具有相同文件名的文件(但大小不同),但未排列在任何子文件夹中。我想像文件夹 1 一样排列文件夹 2 文件。有没有快速的方法可以做到这一点?我正在使用Linux。
答案1
也许沿着这些思路可以做一些事情:
cd "$folder1"
echo "mkdir -p " $(find . -type d | tee /tmp/dirs) > /tmp/tmpscript
find . | awk -F"/" 'FNR == NR {DIR[$0]; next} !($0 in DIR) && !(NF == 2) {print "cp \"" $NF "\" \"" $0"\""}' /tmp/dirs - >> /tmp/tmpscript
cd "$folder2"
less /tmp/tmpscript
# rm /tmp/dirs /tmp/tmpscript
它创建一个临时脚本,首先在folder2下创建子目录结构,然后cp
将其中的每个文件放入其相关的子目录中。如果需要的话更改cp
为。在实际运行之前mv
仔细检查tmpscript
第一个(例如)。less
作为最后一步,应删除临时文件。没有做出任何努力来优化复制操作;每个文件都是单独处理的。可以进行改进,例如将绑定到一个子目录的所有文件收集到一个复制命令中。