1

Я обнаружил, что команда "найти" намного быстрее, чем "Spotlight" в Mac OS X. Я скорее визуализирую результаты с помощью автомата, но не повезло, поэтому я надеюсь, что фанаты вокруг SU помогут с решением по этому поводу.

поисковая фраза shellscript.sh выполняет:

  1. создать папку на рабочем столе "Результаты", если не существует

  2. удалить все в этой папке (свежие результаты)

  3. foreach результат создать симлинк

благодарю вас

2 ответа2

1

Вот версия с несколькими улучшениями.

  • Не включайте ваше имя пользователя в скрипт, используйте ~ для ссылки на ваш домашний каталог.

  • Сохраните имя каталога результатов в переменной. Это показывает, как использовать переменную в сценарии оболочки.

  • Сделайте деталь, которая удаляет результат предыдущего поиска, более надежной: она не удалит ничего, кроме символической ссылки.

  • Самое важное: ваша версия не будет работать с именами файлов, содержащими пробелы или некоторые специальные символы, потому что оболочка выполняет повторный анализ результатов $(...) и $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
0

мой прогресс:

#!/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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .