他大家,
我找不到问题的答案,所以这里是:
我想做一项“工作”,将 10000 多个 PDF 文件从 1 个目录替换/分发到一个唯一的文件夹,其中已经存在“相同”的 PDF(仅 PDF 名称相同)。
示例:包含 10000+ PDF 文件的目录 = /my_dir/backup 有 10000+ 随机 PDF,例如143079.pdf
、493857.pdf
和888675.pdf
“作业”必须搜索143079.pdf
已经存在的文件夹,例如:它所在的文件夹/os_dir/pdf/EDFR_29384_euendho
并替换它。因此,“作业”将看到/my_dir/backup/143079.pdf
并开始在文件夹中搜索/os_dir/pdf/
,并在 中找到它/os_dir/pdf/EDFR_29384_euendho/
。他必须将143079.pdf
in替换/os_dir/pdf/EDFR_29384_euendho/
为143079.pdf
from /my_dir/backup/
。他必须对所有随机 PDF 和所有随机文件夹执行此操作 10000 多次。
做这个的最好方式是什么?
答案1
find
+bash
解决方案:
find . -type f -name "*.pdf" -exec bash -c \
'p="/my_dir/backup/"; bn=${1##*/};
[[ "$1" != $p* ]] && [[ -f "${p}$bn" ]] && cp "${p}$bn" "$1"' _ {} \;
p="/my_dir/backup/"
- 初始(关键)目录的路径bn=${1##*/}
- 文件的基本名称