[解決済み】Bashでファイルパスを正規化する方法とは?
2022-04-04 05:19:46
質問
を変換したい。
/foo/bar/..
から
/foo
これを行うbashコマンドはないのでしょうか?
編集:私の実際のケースでは、ディレクトリは存在します。
解決方法は?
パスからファイル名の一部を切り出したい場合、"dirname" と "basename" はあなたの友人であり、 "realpath" もまた便利です。
dirname /foo/bar/baz
# /foo/bar
basename /foo/bar/baz
# baz
dirname $( dirname /foo/bar/baz )
# /foo
realpath ../foo
# ../foo: No such file or directory
realpath /tmp/../tmp/../tmp
# /tmp
realpath
オルタナティヴ
もし
realpath
は、お使いのシェルでサポートされていない場合、次のようにしてください。
readlink -f /path/here/..
また
readlink -m /path/there/../../
と同じ働きをします。
realpath -s /path/here/../../
は、正規化するためにパスが存在する必要がないことを意味します。
関連
-
[解決済み] retqとretの違いは何ですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] ディレクトリが存在しない場合のみmkdirする方法は?
-
[解決済み] Bashで変数で定義された数値の範囲を反復処理するにはどうすればよいですか?
-
[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】画面 ターミナル '/dev/pts/0' を開くことができない - 確認してください。
-
[解決済み】Postgresql -bash: psql: コマンドが見つかりませんでした。
-
[解決済み】gcc: エラー: 認識されないコマンドラインオプション
-
[解決済み] Ubuntuにchkconfigをインストールするにはどうしたらいいですか?
-
[解決済み] Linuxのシェルでwebsocketの応答を読み取る方法
-
[解決済み] LinuxでXcodeを動かせるか?
-
[解決済み] MacでGNUのreadlink -fの動作を得るにはどうしたらいいですか? [クローズド]です。
-
[解決済み] Bashで現在の作業ディレクトリをスクリプトのディレクトリに設定するにはどうすればよいですか?
-
[解決済み】相対パスで絶対パスを取得する方法
-
[解決済み] OS XでのBashスクリプトの絶対パス