我发现在 mac os x 中“find”命令比“Spotlight”快得多,我宁愿用自动程序来可视化结果,但没有成功,所以我希望 SU 周围的极客们能帮助解决这个问题
shellscript.sh 搜索短语执行:
如果没有,请在桌面上创建“结果”文件夹
删除此文件夹中的所有内容(新鲜结果)
foreach 结果创建一个 simlink
谢谢
答案1
这是一个经过一些改进的版本。
不要在脚本中包含您的用户名,而要用它
~
来指代您的主目录。将结果目录的名称存储在变量中。这说明了如何在 shell 脚本中使用变量。
使删除以前搜索结果的部分更加强大:它不会删除任何非符号链接的内容。
最重要的是:你的版本会因为文件名包含空格或一些特殊字符而失败,因为 shell 会对
$(...)
和的结果进行重新解析$file
。你应该始终将变量替换放在双引号中(即写入"$file"
)。我的版本可以正确处理所有文件名(除非它们包含换行符,但这对于 来说是不可避免的locate
)。
#!/bin/bash
results_dir=~/Desktop/results
mkdir -p "$results_dir"
find "$results_dir" -type l -exec rm {} +
echo "Please enter some input: "
read -r input_variable
locate "$input_variable" | while read -r line; do
ln -s "$line" "$results_dir/"
done
答案2
我的进步:
#!/bin/bash
rm -rf /Users/arpecop/Desktop/results/
mkdir /Users/arpecop/Desktop/results/
echo "Please enter some input: "
read input_variable
for file in $(locate "$input_variable")
do
ln -s $file /Users/arpecop/Desktop/results/
done