【发布时间】:2015-12-07 20:04:40
【问题描述】:
我目前正在使用 Hazel 并运行一些基本的 shell 命令。
当我将图像拖入我选择的文件夹时,它会创建一个以随机 20 位唯一字符串命名的文件夹,并将文件添加到该文件夹中。这是完美的。
我遇到的问题是,当我将多个文件添加到文件夹时,我只想创建一个随机字符串文件夹,并将所有拖动的文件添加到该新文件夹中。
目前对于添加到文件夹的每个图像,都会创建一个新的随机字符串文件夹并将图像移动到那里。
我的 Shell 代码如下:
randomstring=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 20 | head -n 1)
mkdir -p $randomstring
mv $1 $randomstring
任何帮助将不胜感激:)
【问题讨论】:
-
我不知道脚本是如何被调用的。当使用所有文件作为参数调用时,尝试
mv $* $randomstring。当它被多次调用时,您必须将子目录的名称存储在某个地方(或者您可以使用find . -type d之类的东西找到它)? -
@StevenMorton 如果要将每个参数文件移动到新的 $randomstring 文件夹,只需运行
mv "$@" $randomstring/。除此之外,您必须保留文件夹的名称——因为它是随机生成的,也就是说,除了运行脚本两次并获得相同的随机名称之外,您不会这样做。 -
Hazel 对文件夹中扩展名为 .bmp 的所有文件运行脚本。这就是为什么它运行脚本并且每个文件都在它自己的目录中的原因。我想在创建子文件夹的目录上运行一个脚本,并将 .bmp 的任何内容添加到具有唯一字符名称的文件夹中。在这种情况下,$1 用于引用运行脚本的文件。
-
@Rubens 谢谢,但这仍然会产生相同的错误。当我运行预设的 Hazel 命令将 .bmp 文件排序到以创建日期命名的文件夹中时,这可以完美地工作,因为显然共享相同的值。这正是我需要为唯一字符串文件夹和添加进行镜像的内容。