![ローカル ディレクトリをリモート サーバーと rsync するためのエイリアスを作成するのは悪い習慣でしょうか?](https://rvso.com/image/1482476/%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%20%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A8%20rsync%20%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E6%82%AA%E3%81%84%E7%BF%92%E6%85%A3%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
免責事項: 私はスーパーユーザーではありません。
質問: サーバーを自分のマシンの開発ディレクトリと同期したいときは、毎回この面倒なコードを書いていることに気づきます。
rsync -chavzP --stats user@host:/remote/ ~/local/
毎回入力しなくて済むように、.zshrc などにエイリアスを作成するのは悪い習慣でしょうか? ユーザー名とホスト名は常に扱いにくく、数字がいっぱいです。ほとんどの場合、自分で調べる必要があることに気づきます。それが悪い習慣だとしたら、そう感じますが、時間を節約するために他にどのようなアプローチを取ればよいでしょうか?
答え1
何年も前に Bash シェルを使い始めたとき、エイリアスに依存するようになり、シェル エイリアスが定義されていない別のシステムで使用したときに迷子になってしまう可能性があるため、エイリアスを定義することに消極的でした。
あなたのコマンドのような複雑なコマンドを繰り返すためにrsync
、私は、Ctrl-R以前に入力したコマンドをシェル履歴から遡って検索できる Bash の機能を使用しました。
しかし、これは信頼性が低く、数年後、エイリアスを使用しないのは愚かだという結論に達しました。エイリアスは数十年前に発明されました (C シェル†の作成者である Bill Joy に感謝できます)。それには十分な理由があります。長いコマンドを入力するには時間と労力がかかるからです。
ほとんどの人は、特に散発的にしか使用しない場合は、長いコマンドを簡単に覚えることができません。rsync
また、上記のコマンドは引数も必要ないため、エイリアスの使用例に最適です (引数が必要な場合は、シェル関数が使用されます)。
また、同様のコマンドを使用する必要がある場合は、シェルの起動ファイルにエイリアスを保存しておくと、外部ソースからコマンドの詳細を調べる必要がなくなり、時間を節約できます。
最近では、ユーザーがカスタム シェル エイリアス、関数、構成ファイル、スクリプトをサーバー上に保存して、新しいシステムや別のシステムを使用するときに取得できるようにすることが一般的です。Dropbox を使用する人もいれば、GitHub を使用する人もいます。また、自分の個人用 Web スペースにアップロードする人もいます。こうすることで、シェルのカスタマイズをいつでも利用できるようになります。
結論/TLDR
このようなエイリアスを使用することは良い習慣であり、時間と入力を節約します。そして、それがエイリアスが作成された理由です。エイリアスを などのシェルの起動ファイルに保存すると、.zshrc
いつでも使用できるようになります。これは、Unix シェルのユーザーにとってベスト プラクティスと見なされます。
参照
エイリアスを使うべきとき、スクリプトを使うべきとき、関数を書くべきとき
参照
†ビル・ジョイは別名についてこう言っている。C シェルの紹介:
このメカニズムを使用すると、入力するコマンドを簡略化したり、コマンドにデフォルトの引数を指定したり、コマンドとその引数を変換したりすることができます。