Macos 用于组织下载文件类型的Mac bash脚本
系统:Mac OSX 10.6.8Macos 用于组织下载文件类型的Mac bash脚本,macos,bash,Macos,Bash,系统:Mac OSX 10.6.8 外壳:Bash外壳(终端) 我正在尝试编写一个脚本,有选择地组织我的下载文件夹 目的: -打开脚本后,从浏览器下载的具有特定文件类型(例如:“.rar”)的任何文件都将保存在下载子目录(例如:“rar_下载”)。 -不会影响下载目录中的当前文件 -关闭脚本后,下载的文件将正常保存到下载目录。 我将非常感谢任何关于如何写这篇文章的见解。谢谢大家! 一个简短的大纲:你需要两个时间戳,脚本打开和脚本关闭,它们定义了你动作的时间范围。让脚本持续工作相当困难,因为您需要
外壳:Bash外壳(终端)
我正在尝试编写一个脚本,有选择地组织我的下载文件夹 目的:
-打开脚本后,从浏览器下载的具有特定文件类型(例如:“.rar”)的任何文件都将保存在下载子目录(例如:“rar_下载”)。
-不会影响下载目录中的当前文件
-关闭脚本后,下载的文件将正常保存到下载目录。
我将非常感谢任何关于如何写这篇文章的见解。谢谢大家! 一个简短的大纲:你需要两个时间戳,脚本打开和脚本关闭,它们定义了你动作的时间范围。让脚本持续工作相当困难,因为您需要浏览器集成,所以手动(或通过crontab)运行它 大致轮廓:
find Downloads -newer script-on -and -not -newer script-off | while read filename; do
SUFFIX=`echo "$filename" | sed -n -e 's/.*\.\([^./]*\)$/\1/p'`;
if [ -n "$SUFFIX" ]; then mv "$filename" "Downloads/${SUFFIX}_downloads"; fi
done
第2行中的sed表达式提取后缀,即文件名最后一个后缀之后的终端部分。在最后一个组件中,如果没有后缀,则不打印输出。我想知道AppleScript(Automator workflow?)是否不是一个更简单的解决方案。请参见示例3。如果要在某些文件夹中聚合多个文件类型(例如,将.jpeg、.jpg、.png定向到./images子文件夹),则case语句会有所帮助。“mkdir-p”命令在任何情况下都有助于确保目标子目录存在。@thiton还有一个很小的改进,就是使用“后缀=${filename##*\.}”来捕获文件扩展名。感谢您的及时回复!您的代码有点让人不知所措,所以我需要花一些时间研究使用的命令,然后才能理解这里发生了什么(更不用说regexp了)。