pwd
私にください
/data/users/me/some/random/folder
簡単に入手できる方法はありますか?
~/some/random/folder
からpwd
?
答え1
Bashを使用している場合、組み込み関数は目的のdirs
アクションを実行します。
dirs +0
~/some/random/folder
(ノート+0
、いいえ-0
.)
そしてzsh
:
dirs
~/some/random/folder
正確に言うと、まずディレクトリスタックを消去する必要があります。それ以外の場合は、dirs
すべての内容が印刷されます。
dirs -c; dirs
または内蔵zsh
機能を使用してください。print
print -rD $PWD
または
print -P %~
(その番急速な拡張存在する。%~
inは次の代わりに$PS1
現在のディレクトリに展開しますが、他のディレクトリも処理します。$HOME
~
名前ディレクトリ他のユーザーのホームディレクトリと同じ名前ディレクトリあなたが定義する)。
答え2
Bash変数サブストリング置換関数を使用できます。
$ pwd
/home/vagrant/foo/bar
$ echo ${PWD/#$HOME/'~'}
~/foo/bar
答え3
使用sed
:
pwd | sed "s|^$HOME|~|"
sed
ホームディレクトリパスに表示される可能性がないすべての文字を正規表現の区切り文字として使用するのがアイデアです。上記の例では|
。
この技術の利点は、事実上シェルに依存しないことです。
また、エイリアスを使用して使用できる他のスクリプトからこの動作を取得することもできますpwd
。/bin/pwd | sed "s|$HOME|~|"
pwd
答え4
不要な部品を次のように交換してみることができますsed
。
pwd | sed 's,^/data/users/me,~,'
または、より良い方法は次のとおりです。
pwd | sed "s,^$HOME,~,"