[解決済み] Bashスクリプトでカレントディレクトリ名(フルパスなし)を取得する
2022-03-20 10:14:54
質問
bashスクリプト、あるいはターミナルコマンドで、カレントワーキングディレクトリ名だけを取得するにはどうしたらよいでしょうか。
pwd
は、現在の作業ディレクトリのフルパスを与える、例えば
/opt/local/bin
が、私が欲しいのは
bin
どのように解決するのですか?
basenameは不要で、特にpwdを実行するサブシェルも不要(これは 余計な、そして高価なフォーク操作を追加する を使用してシェルが内部で行うことができます。 パラメータ展開 :
result=${PWD##*/} # to assign to a variable
printf '%s\n' "${PWD##*/}" # to print to stdout
# ...more robust than echo for unusual names
# (consider a directory named -e or -n)
printf '%q\n' "${PWD##*/}" # to print to stdout, quoted for use as shell input
# ...useful to make hidden characters readable.
なお、このテクニックを他の状況で応用する場合(
PWD
ディレクトリ名を保持する他の変数)、末尾のスラッシュをトリミングする必要があるかもしれません。以下は,bashの
extglobのサポート
を使用すると、末尾に複数のスラッシュがあっても動作します。
dirname=/path/to/somewhere//
shopt -s extglob # enable +(...) glob syntax
result=${dirname%%+(/)} # trim however many trailing slashes exist
result=${result##*/} # remove everything before the last / that still remains
printf '%s\n' "$result"
または
extglob
:
dirname="/path/to/somewhere//"
result="${dirname%"${dirname##*[!/]}"}" # extglob-free multi-trailing-/ trim
result="${result##*/}" # remove everything before the last /
関連
-
[解決済み] 絶対パスと論理パスの違い
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] ディレクトリが存在しない場合のみmkdirする方法は?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] Bashでlsを使ってディレクトリだけをリストアップする?
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド
-
[解決済み] Bashで現在の作業ディレクトリをスクリプトのディレクトリに設定するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] find -exec cp {} でエラー 'find: missing argument to -exec' が発生した場合の解決策。TARGET_DIR + [閉店]。
-
[解決済み] Homebrewは最新ですが、`could not link` + `delete path` のエラーは気にしなくていいのでしょうか?
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] Bashを使ってプログレスインジケータを表示する [重複]。
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] MacでGNUのreadlink -fの動作を得るにはどうしたらいいですか? [クローズド]です。
-
[解決済み] BashでDo-whileループをエミュレートする
-
[解決済み] Bashスクリプトの'''抜け'''がある] [クローズド]
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み】Bashでディレクトリの親を取得する