创建与文件同名的文件夹并将文件移动到文件夹中的脚本

创建与文件同名的文件夹并将文件移动到文件夹中的脚本

我有很多单独的文件:

/File 01.txt
/Picture 02.png

是否有一个终端命令可以执行此操作,所以我最终得到以下结果:

/File 01/File 01.txt
/Picture 02/Picture 02.png/

我在 Mac 上使用 OS X 10.11.3

这听起来很简单,但是我对 Mac 还很陌生,并且对从 Windows 转移的终端没有真正的了解。

答案1

在开始之前,我真的建议您备份要执行此操作的文件夹。

cd进入您尝试操作的文件夹然后:

for file in *; do
  if [[ -f "$file" ]]; then
    mkdir "${file%.*}"
    mv "$file" "${file%.*}"
  fi
done
  1. 循环遍历*当前文件夹中的所有文件()。
  2. mkdir从不带扩展名的文件创建文件夹 ( )${file%.*}
  3. mv将文件移动( )到该文件夹​​中。

请注意,您必须使用引号,因为某些文件的名称中可能有空格。

您可以在终端中输入该内容,也可以创建脚本文件。

答案2

我没有足够的声誉来将此作为评论添加到上面的@Ammar Alammar 的精彩答案中,但如果有人想将其直接粘贴在终端提示符下而不是将其保存为脚本,那么这个单行代码应该可以解决问题:

for file in *; do if [[ -f "$file" ]]; then mkdir "${file%.*}"; mv "$file" "${file%.*}"; fi; done

答案3

但我想知道如果一个文件夹中有许多文件,例如,它们具有相同的名称,后面跟着一个数字,例如 fotolux-1.jpg、fotolux-2.jpg...和 ​​Fotoone-1.jpg、fotoone-2.jpg...等等...并且想创建一个名为 fotolux、fotoone 等的文件夹,将所有文件放在各自的名称文件夹中,例如 fotolux、fotoone 等,不管我应该做哪些更改才能使其工作...谢谢

相关内容