Необходимо изменить каталог в сценарии bash

Вы должны найти только что установленный vim в каталоге bin под префиксом homebrew:

echo `brew --prefix`/bin/vim

Конечно, brew info vim сообщит вам, какой подвал brew установил vim в. Поскольку я не установил vim с помощью homebrew, позвольте мне показать вам пример с использованием wget :

benlavery@Talantinc:~ $>brew info wget
wget: stable 1.16.3, HEAD
Internet file retriever
https://www.gnu.org/software/wget/
/opt/homebrew/Cellar/wget/1.14 (8 files, 716K)
  Built from source
/opt/homebrew/Cellar/wget/1.15_1 (9 files, 908K)
  Built from source
/opt/homebrew/Cellar/wget/1.16 (9 files, 920K)
  Built from source
/opt/homebrew/Cellar/wget/1.16.1 (9 files, 940K)
  Built from source
/opt/homebrew/Cellar/wget/1.16.3 (9 files, 1.5M) *
  Built from source
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/wget.rb
==> Dependencies
Build: xz ✔
Recommended: openssl ✔
Optional: libressl ✘, pcre ✘
==> Options
--with-debug
        Build with debug support
--with-iri
        Enable iri support
--with-libressl
        Build with libressl support
--with-pcre
        Build with pcre support
--without-openssl
        Build without openssl support
--HEAD
        Install HEAD version

Вы можете увидеть самую последнюю версию, отмеченную звездочкой (*).

Итак, для меня wget был установлен в

/opt/homebrew/Cellar/wget/1.16.3/bin/wget

. Теперь я могу использовать find , чтобы найти место, где homebrew имеет символическую ссылку wget :

benlavery@Talantinc:~ $>find / -lname *Cellar/wget/1.16.3/bin/wget 
/opt/homebrew/bin/wget

Обратите внимание, что я Мы использовали * Cellar / wget / 1.16.3 / bin / wget как lname , а не полный путь. Homebrew связывает файлы относительно их установки, поэтому, если бы мы использовали полный путь, мы бы не поймали ../ Cellar / wget / 1.16.3 / bin / wget .

Теперь я знаю, что / opt / homebrew / bin / wget - это то, что мне следует использовать в моем скрипте.

Как я уже сказал, здесь используется wget , тот же процесс можно использовать для исследования, где находится vim .

-1
16.01.2018, 19:54
1 ответ

Если вы хотите иметь дело только с одним архивным файлом за раз, вы можете просто сохранить имя файла в переменной:

file=/var/tmp/backups/splunkbackup$(date '+%y-%m-%d').tar.gz
tar -zcf "$file" /opt/splunk/etc/
rsync -avz "$file" svc_splkbup@10.x.x.x:/...
rm "$file"

Хотя вы можете захотеть удалить файл только в случае успешной передачи, так что вместо этого:

rsync -avz "$file" svc_splkbup@10.x.x.x:/... &&
  rm "$file"
0
28.01.2020, 05:07

Теги

Похожие вопросы