Автоматически исправить путь при запуске команды из истории?

Я выполняю рекурсивный поиск, чтобы найти команду, которую я выполнил несколько дней назад, и я хочу ее запустить. Однако эта команда должна запускаться с пути, из которого я запускал его ранее, а не там, где я сейчас.

Возможно ли, чтобы zsh это и изменил команду на полный путь и выполнил мой текущий путь? или, может быть, fork переключение процесса на исходный путь запустит его и вернется?

2 Solutions collect form web for “Автоматически исправить путь при запуске команды из истории?”

Исходный каталог, в котором выполнялась команда, не записывается в историю.

Вы можете установить крючок, который будет выполняться, если имя команды, которую вы пытаетесь выполнить, не найдено: command_not_found_handler . Но если у вас есть хорошая идея о том, что раньше работало в то время, это не приведет вас далеко.

Связанное чтение: zsh history – полный путь ; Могу ли я иметь историю истории оболочки, как расширяются шаблоны?

В большинстве случаев это фактически было бы нежелательным действием. Часто, когда я повторно запускаю команду, специально запускать их в моем текущем контексте. Запуск команды history и ее действие над чем-то другим, кроме текущей папки, могут даже иметь неожиданные и нежелательные побочные эффекты.

Я бы предложил придерживаться другого подхода. Сначала определите, какая команда должна быть специально олова из определенного места, а затем спросите себя, почему они такие, и исправьте их, используя стандартные шаблоны.

  • Если им нужно загружать библиотеки из ресурсов, которые находятся по пути относительно исполняемого файла, исправьте их, чтобы они знали, где их найти, используя такие вещи, как dirname и $0 .

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

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

  • Переключение на `zsh`: все ли скрипты bash совместимы с` zsh`?
  • Команда Wrap в подсказке
  • zsh добавляет символ табуляции при автозаполнении
  • Развернуть переменную в определении функции в zsh
  • дождитесь выхода хрома, прежде чем продолжить сценарий оболочки
  • Вызов функции завершения zsh и получение ее результатов
  • Можно ли включить файл в конфигурационный файл zsh? Как?
  • bash vs zsh: scoping и `typeset -g`
  • Липкие записи в истории оболочки
  • Позволяет просматривать и заполнять файлы из другого каталога
  • Папка псевдонимов исполняемых файлов с добавленным ключевым словом
  • Linux и Unix - лучшая ОС в мире.