mac终端命令:名称一致的多个文件归类创建文件夹

6个月前 / Directory:MAC / Views:286

在macOS终端中,你可以使用Shell脚本来自动创建文件夹并根据文件名移动相应的文件。下面提供了一个基于bash的脚本示例,这个脚本会检查当前目录下的所有文件,并对那些文件名前缀相同但后缀不同的文件进行分组,然后创建以这个前缀命名的文件夹,并将相应的文件移动到该文件夹中。

首先,打开你的终端应用程序(可以在Finder中的“应用程序”> “实用工具”里找到“终端”),然后可以在终端里创建一个脚本文件,或直接运行以下命令:

#!/bin/bash
# 切换到存放文件的目录
cd /path/to/your/files
# 读取所有文件名,提取基础名(去掉扩展名和可能的连字符),然后对每个基础名处理
for file in *; do
  # 使用awk去除文件扩展名,并处理文件名中的连字符
  base=$(echo $file | awk -F '.' '{ print $1 }' | tr '-' ' ')
  # 创建以基础名命名的目录,如果不存在的话
  mkdir -p "$base"
  # 移动所有相同基础名的文件到该目录
  mv "$base"*.* "$base"/
done


如何使用这个脚本:
将上面的脚本保存为一个文件,例如 move_files.sh
给这个脚本文件添加执行权限:在终端中运行

chmod +x move_files.sh

修改脚本中的 /path/to/your/files 为你的文件实际所在的目录路径

在终端中运行这个脚本:

./move_files.sh

这个脚本会对每一个文件名进行处理,提取不带扩展名和连字符的部分作为目录名,然后创建目录,并将相应文件移动到该目录下。你需要确保文件名的基础部分是一致的,对于特殊字符或额外的空格,可能需要适当调整脚本来准确匹配。