shell - 将每个文件从每个文件夹移动到特定文件夹
问题描述
我正在尝试编写 shell 脚本来运行它..
我想它需要语法或查找语法..但我一直在处理扫描每个文件夹..
我曾尝试使用 "find" -maxdepth 1 -name "*.jpg | mv " 但失败了......
- 对于每个目录中的每个 jpg 文件(文件夹 1、文件夹 2、文件夹 3...文件夹 5...等)
- 将文件移动到作为父目录的目标目录。
- 如果文件名重复,请移至 dup 目录。
解决方案
就像是
for f in folder*/*.jpg; do
if [ -e "$(basename "$f")" ]; then
mv "$f" dup/
else
mv "$f" .
fi
done
从父目录运行。只需遍历文件夹子目录中的每个 jpg,移动到一个或另一个位置,具体取决于具有该名称的文件是否已经存在。
更高效的bash
版本:
for f in folder*/*.jpg; do
if [[ -e ${f##*/} ]]; then
mv "$f" dup/
else
mv "$f" .
fi
done
推荐阅读
- .htaccess - .htaccess 重定向——两个重定向之间的区别
- python - 用运算求解代数方程
- python - 有没有更有效的方法将多行字符串转换为 numpy 数组?
- java - 如何使用相关表中的数据更新关系表的字段
- google-apps-script - GoogleAppsScript中要求客户将问题回复给Linebot的功能后如何触发线路通知功能?
- artificial-intelligence - I-POMDP(交互式 POMDP)NEXP 是否完整?
- c++ - 如何将 libpq 中的 NULL 值与 C++ 绑定?
- c# - MsalServiceException:AADSTS90014:缺少必填字段“aud”
- java - 如何从 MultipartFile 中提取文件路径
- c# - c#如何使用webresponseasync方法下载网页源