1

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

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

#!/bin/bash
echo "sudo rsync -av -e ssh $(whoami)@$HOSTNAME:$(pwd) ./" 

Который выводит команду, подобную этой, которую я могу запустить на своем домашнем компьютере:

sudo rsync -av -e ssh user@hostname:/opt/lib/folder ./

Теперь мой вопрос: как мне сделать это псевдонимом bash, чтобы я мог добавить его в свою учетную запись на каждом из серверов?

2 ответа2

1

Вы можете использовать функцию вместо псевдонима. Просто поместите его в файл ~/.bashrc следующим образом:

print_rsync ()
{
    echo "sudo rsync -av -e ssh $(whoami)@$HOSTNAME:$(pwd) ./"
}

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

0

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

Просто скопируйте ваш скрипт куда-нибудь в вашем PATH, например /usr/local/bin , или создайте папку bin для вашего пользователя:

mkdir ~/bin
echo 'export PATH="$PATH:$HOME/bin"' >> ~/.bashrc
. .bashrc # or reopen terminal
cp script.sh ~/bin

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