查找每个文件的 shellscript 执行命令

查找每个文件的 shellscript 执行命令

我发现在 mac os x 中“find”命令比“Spotlight”快得多,我宁愿用自动程序来可视化结果,但没有成功,所以我希望 SU 周围的极客们能帮助解决这个问题

shellscript.sh 搜索短语执行:

  1. 如果没有,请在桌面上创建“结果”文件夹

  2. 删除此文件夹中的所有内容(新鲜结果)

  3. 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

相关内容