交換できることを願っています
cp x.x ~/some/long/directory/that/is/deeply/nested/
そして
cp x.x s1
ここで、s1 は指すエイリアスです。/some/long/directory/that/is/deeply/nested/
しかし、目的地はしばしば変わります。
今日は
/some/long/directory/that/is/deeply/nested/
翌日は
/some/long/directory/less/deep
翌日は
/some/other/directory/less/deep
変更が継続されることを考えると、エイリアス(または私の考えに関数である可能性が高い)はありますか?エイリアスを「解釈する」ターゲットとしてcpを実行する方法はありますか?
それはまるで
cp x.x `s`
「ソース」ファイルにもさまざまな値があります。私は1つ(またはいくつかのリスト)の場所または1つ(またはいくつかのリスト)のソースファイルだけを指すエイリアスを望んでいません。私はその時にエイリアスが指すものが何であれ、それが呼び出されたときにファイル名を提供したいと思います。
ソースとターゲットは、何千もの値のいずれかです。
答え1
シェル変数
s1
次のように変数を配置するディレクトリを追加できます。
s1=/some/long/directory/that/is/deeply/nested/
その後、次のようにアクセスできます。
$ cp x.x $s1
シンボリックリンク
今日の長いディレクトリに対してのみホームディレクトリへのリンクを保持できます。
$ ln /some/long/directory/that/is/deeply/nested/ $HOME/shortlink
$ cp x.x $HOME/shortlink
目次ブックマークツール
このQ&Aの質問を確認してください。端末でのクイックディレクトリのナビゲーション。次のツール自動ジャンプまたはxd - 超高速ディレクトリチェンジャー、頻繁に使用するディレクトリを「ブックマーク」として指定することで、長いパスを入力しなくても簡単に変更できます。
引用する
答え2
どうですか?
#!/bin/bash
mdhf="/home/MichaelDurrant/linq
params="$@"
[[ $params = *-d* ]] && nufile=${params##*\-f}
[[ $nufile ]] && [ -L "$mdhf" ] && rm $mdhf
[[ $nufile ]] && ln -s $nufile $mdhf
for i in "$@"; do
[[ $i = '-d' ]] && break
cp -v $i $mdhf
done
使用法はですmdcp filename -d directory
。現在のソフトリンクディレクトリを変更するには、-dパラメータを使用します。