[解決済み] bashでファイルの絶対ディレクトリを取得するには?
2023-02-10 03:41:07
質問
入力ファイルを引数として受け取り、それを読み込むbashスクリプトを書きました。
このファイルには、使用する追加ファイルへのいくつかのパス(その場所からの相対パス)が含まれています。
私は、スクリプトが入力ファイルを含むフォルダに移動して、さらにコマンドを実行することを望みます。
そこで 入力ファイルからフォルダ(およびフォルダだけ)を取得するにはどうしたらよいでしょうか。 (linuxの場合。)
どのように解決するには?
フルパスを取得するために使用します。
readlink -f relative/path/to/file
ファイルのディレクトリを取得する。
dirname relative/path/to/file
この2つを組み合わせることもできます。
dirname $(readlink -f relative/path/to/file)
もし
readlink -f
がシステム上で利用できない場合は、次のようにします。
*
:
function myreadlink() {
(
cd "$(dirname $1)" # or cd "${1%/*}"
echo "$PWD/$(basename $1)" # or echo "$PWD/${1##*/}"
)
}
なお、相対パスで指定されたファイルのディレクトリに移動するだけなら、絶対パスを知る必要はなく、相対パスでも全く問題ないので、そのまま使ってください。
cd $(dirname relative/path/to/file)
スクリプトの実行中に)元のパスに戻りたい場合は
pushd
の代わりに
cd
であり
popd
を追加してください。
*
一方
myreadlink
はこの質問の文脈では十分なものですが、これは
readlink
ツールに対していくつかの制限があります。例えば、それは、異なるbasename
.
関連
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
LinuxでPingを無効にする、または許可する設定方法
-
deepin20のファイルを共有する方法を教えてください。Windowsでdeepinファイルを共有するためのヒント
-
Linux Mintで入力メソッドを削除する方法は?Linux Mintで冗長な入力メソッドを削除するためのヒント
-
Kali Linuxのデフォルトのひげメニューアイコンを変更する方法は?
-
deepin20のソフトをアンインストールする方法を教えてください。deepinのアプリケーションをアンインストールする2つの方法
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
GCCのバージョンによる浮動小数点演算の例外発生
-
[解決済み] MacでGNUのreadlink -fの動作を得るにはどうしたらいいですか? [クローズド]です。
-
[解決済み] ディレクトリInodeと通常ファイルInodeの比較
-
[解決済み] Linuxでファイルをシンボリックリンクするには?[クローズド]