ある重複フォルダ構造から別の重複フォルダ構造にディレクトリを変更する簡単な方法はありますか?

ある重複フォルダ構造から別の重複フォルダ構造にディレクトリを変更する簡単な方法はありますか?

私たちのサーバーには、テスト、ステージング、およびプロダクション用の複数の重複フォルダ構造があります。マイナーな変更を除いて、フォルダ構造は通常3つすべて同じです。

私はWordPressプラグインを開発するときに開発フォルダ構造(例えば~/dev/com/wp-content/plugins/myplugin)を掘り下げます。私はそれが~/staging/com/wp-content/plugins/myplugin存在することを知っています。

現在の作業ディレクトリがある場合は、~/dev/com/wp-content/plugins/myplugin簡単に切り替えることができます。~/staging/com/wp-content/plugins/myplugin いいえ完全なディレクトリ構造を入力しますか?

次のようなものを入力したいcdx~/staging、さらにcdx../../../../../staging現在のディレクトリパスを使用して新しいディレクトリに移動するコマンドを実行します。明らかに、新しいフォルダに正しい構造が含まれていないとエラーが発生します。

完全なディレクトリ構造の入力に停止しましたか?それとももっと良い方法がありますか?

ベストアンサー1

文字列置換を使用してくださいbash

$ a="~/dev/com/wp-content/plugins/myplugin"
$ echo ${a/dev/staging}
~/staging/com/wp-content/plugins/myplugin

だから、次の関数:

cdx () 
{
    cd "${PWD/$1/$2}"
}

その後、フォルダからにcdx dev staging切り替えます。いくつかの検証で機能名を指定できます。devstagingcd

cd ()
{
    if [ $# != 2 ]
    then
        builtin cd "$@"
    else
        builtin cd "${PWD/$1/$2}"
    fi
}

影響:

~ # cd /tmp
/tmp # cd tmp srv
/srv # cd
~ # cd -
/srv
/srv # cd tmp var
/srv #

cdこれは、2つのパラメータを除くすべてのケースで一般的な動作を維持します。

おすすめ記事