我正在尝试创建一个 Automator 服务(在右键单击菜单中),该服务创建文件夹/文件的符号链接并将其移动到 Dropbox 文件夹。这就是我现在所拥有的:
while [ $# -ne 0 ]; do
ln -s "$1" "$1 symlink"
mv "$1 symlink" ~/Dropbox/.
shift
done
然而我想要做的是创建一个具有相同名称($1)的文件夹。尝试mv "$1 symlink" ~/Dropbox/"$1"
是行不通的。我似乎不知道如何重命名该文件夹。我尝试了这个,由于某种原因,它将符号链接文件夹移动到符号链接的文件夹内($1)。
while [ $# -ne 0 ]; do
loc = "~/Dropbox"
ln -s "$1" "$1 symlink"
mv "$1 symlink" "$loc/$1"
shift
done
答案1
这是您当前的代码
while [ $# -ne 0 ]; do
ln -s "$1" "$1 symlink" # you create a symlink named "xxx symlink"
mv "$1 symlink" ~/Dropbox/. # you are moving the symlink into Dropbox folder
shift
done
您想要符号链接到 Dropbox 中已有的文件/目录,因此必须这样做:
while [ $# -ne 0 ]; do
# you want it to fail if there is a file in dropbox with the same name
test -e "~/Dropbox/$1" && exit 1
# order of two lines below is unimportant
mv "$1" ~/Dropbox/ # move file into dropbox
ln -s "~/Dropbox/$1" "$1 symlink" # you create a symlink named "xxx symlink"
shift
done
至于你问题的第二部分:
然而我想要做的是创建一个具有相同名称($1)的文件夹。尝试 mv "$1 symlink" ~/Dropbox/"$1" 不起作用。我似乎不知道如何重命名该文件夹。我尝试了这个,由于某种原因,它将符号链接文件夹移动到符号链接的文件夹内($1)。
while [ $# -ne 0 ]; do loc = "~/Dropbox" ln -s "$1" "$1 symlink" mv "$1 symlink" "$loc/$1" shift done
创建目录的实用程序称为mkdir
。虽然我无法弄清楚您要重命名哪个文件夹,但您可以使用mv
命令来完成此操作。例如,mv ~/file ~/Dropbox/backup.thing
将文件重命名file
为,backup.thing
同时还在位置之间移动它。