Mac Scripting在USB记忆棒上移动文件

时间:2018-01-25 21:09:33

标签: macos scripting

我完全不熟悉mac脚本,以前只用VBS做过一点,任何指针都会很棒。我有一个带有一千个文件的USB记忆棒,我想要一个脚本要做的就是选择文件名的第一个字母并移动到同一个字母名称的文件夹,然后在该文件夹中我想要选择第二个字母的文件名并移动到该文件夹​​。我希望它循环遍历移动文件的整个文件夹结构。

示例ATest.txt将被移动到文件夹A \ T。

1 个答案:

答案 0 :(得分:-1)

好吧,假设您的USB记忆棒被称为“USB记忆棒”,如果没有,请在适当的时候更换。

首先 - 如果您使用TimeMachine,请备份操纵杆,最好是整个Mac。

space 启动终端并开始输入“终端”。当它猜对了,按 Enter / Return 。这是“Spotlight搜索”,是在Mac上查找文件和程序的最快捷方式,顺便说一句。

现在使用cd命令将目录更改为USB记忆棒上的目录。请注意, macOS 始终在/Volumes下安装外部驱动器:

cd /Volumes/"USB Stick"

创建一个无用的文件:

touch "Freddy Frog"

现在使用Finder查看您的USB记忆棒并确保您在同一个地方 - 如果您在Finder中没有看到Freddy Frog,请停在此处。

现在创建目录:

mkdir -p {a..z}/{a..z}

如果您希望目录大写,请使用{A..Z}/{A..Z}

现在将以下bash脚本保存为HOME目录中的“MOVER”:

#!/bin/bash
shopt -s nocaseglob nullglob

# Loop through all files beginning with two letters followed by anything else
for f in [A-Z][A-Z]*; do 
   let0=${f:0:1}                 # Extract first letter
   let1=${f:1:1}                 # Extract second leter
   newdir="$let0/$let1"          # Build name of new directory
   echo Moving $f to $newdir/$f
done

然后,在终端中,仍然在/Volumes/"USB Stick"目录中,您可以运行该脚本。它不会改变您计算机上的任何内容,但它会告诉您它会做什么,并且您可以检查它看起来是否正确:

bash $HOME/MOVER

一旦你尝试并测试了它,你需要确保你做了备份,然后用脚本替换脚本中的倒数第二行,即以echo开头的行,并运行它再次:

mv "$f" "$newdir"