Linuxの相対パスと絶対パスの使用

Linuxの相対パスと絶対パスの使用

01. 概要

絶対パスと相対パスはシェル環境でよく使用され、それぞれに独自の用途があります。相対パスの方が便利な場合もあれば、絶対パスの方が便利な場合もあります。

02. 絶対パス名

絶対パスは **/** で始まる必要があります

絶対パスはファイル/ファイルの場所を指します。

いつでも絶対パスを使って必要なファイルを見つけることができます

例1:
/ホーム/デン

例2:
マニュアル

03. 相対パス名

相対パスは **/** で始まりません

相対パスは現在の場所を基準とし、目的地を指します。

通常、相対パスは絶対パスよりも短く、ファイルをすばやく見つけるためのショートカットとして使用できます。

例1:
../テスト/itcast

例2:
。/テスト

04. 相対パスの目的

では、相対パスと絶対パスの何が重要なのでしょうか?飲む!それは本当にすごいですね! etc、bin、man という 3 つのディレクトリを必要とするソフトウェアを作成したとします。ただし、人によってソフトウェアを異なるディレクトリにインストールしたい場合があります。A さんはソフトウェアを /usr/local/packages/etc、/usr/local/packages/bin、/usr/local/packages/man にインストールしますが、B さんはソフトウェアを /home/packages/etc、/home/packages/bin、/home/packages/man にインストールしたいとします。絶対パスが必要な場合、面倒になりますか?はい! このままでは、各ディレクトリ内の内容を一致させることが困難です。このとき、相対パスの書き方は特に重要です!

さらに、私と同じように、ディレクトリの目的がわかるように長いパス名を記述したい場合、たとえば、ディレクトリが /cluster/raid/output/taiwan2006/smoke で、別のディレクトリが /cluster/raid/output/taiwan2006/cctm の場合、最初のディレクトリから 2 番目のディレクトリに移動するには、どのように記述するのがより便利でしょうか。 もちろんcd.../cctmの方が便利です!右!

05. 絶対パスの目的

ただし、ファイル名の正確さに関しては「絶対パスの方が正確ですよ~」とのこと。 一般的に言えば、システムを管理するためのシェル スクリプトを作成するときは絶対パスを使用することをお勧めします。 なんと言えばいいでしょうか?絶対パスで書くほうが面倒ではありますが、この書き方でも問題はないはずです。 プログラム内で相対パスを使用すると、実行している作業環境が異なるために問題が発生する可能性があります。

06. 発散的思考

質問: 相対パスが指定された場合、システムは対応する絶対パスをどのように識別しますか?

実際、相対パスは PATH 環境変数に基づいて絶対パスを見つけます。

たとえば、現在、itcast ユーザーのホーム ディレクトリである /home/itcast にいます。/bin/more にある more コマンドを使用して、その中の .bashrc ファイルのデータを表示したいとします。通常のコマンドの書き方は次のとおりです。

[itcast@localhost ~]$ もっと見る .bashrc

PATH 変数の値は次のとおりです。

[deng@localhost ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/deng/.local/bin:/home/deng/bin
[deng@localhost ~]$

more コマンドを実行すると、シェルは PATH 変数のパスに従って順番に検索します。一致するものが見つかると (この場合、一致するのは /bin/more です)、/bin/more .bashrc が実行されます。コマンドを実行する際に相対パスから絶対パスを検索する処理です。

したがって、現在のディレクトリで実行可能プログラムを実行するための形式が次のようになる理由がわかります。

[deng@localhost ~]$ ./test.sh

test.sh を直接使用する代わりに。通常、PATH 変数には現在のパスが含まれていないためです。 ./ が追加されていない場合、相対パス形式のコマンドは絶対パスを見つけることができません。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux でファイル記述子を介してファイルの絶対パスを取得する方法
  • Linux C++ ファイルの絶対パスを取得するためのサンプルコード
  • Linux サーバー上の MySQL 設定ファイルのパスを表示する方法
  • Linux c 現在のプロセスのプロセス名と実行パスを取得する (例)
  • Linuxで実行中のファイルのフルパスを照会する方法
  • Linux でのダイナミック リンク ライブラリの読み込みパスと検索パスに関する問題
  • Linux クイックロケーション Web パス メソッド
  • Linuxで現在のスクリプトの実際のパスを取得する方法
  • Linuxで現在の作業パスを取得する例

<<:  経験豊富な人が、プロフェッショナルで標準化されたMySQL起動スクリプトの開発方法を紹介します。

>>:  Vue で手ぶれ補正とスロットリングを使用する方法

推薦する

Linux システムで PATH 環境変数を設定する方法 (3 つの方法)

1. Windows システムでは、JDK のインストールなど、多くのソフトウェアのインストールで...

DockerはMariaDBのサブライブラリとサブテーブル、および読み書き分離機能を実装します

目次1. はじめに2. 環境整備1. 基本環境3.Mysqlマスタースレーブ構成をインストールする1...

MySQLはデフォルトのエンジンと文字セットの詳細を変更します

目次1. データベースエンジン1.1 ビューデータベースエンジン1.2 デフォルトのデータベースエン...

InnoDB の主な機能 - 挿入キャッシュ、2 度書き込み、適応ハッシュ インデックスの詳細

InnoDB ストレージ エンジンの主な機能には、挿入バッファ、二重書き込み、適応ハッシュインデック...

入力ボックスのプレースホルダーテキストのデフォルトの色を変更する -webkit-input-placeholder メソッド

HTML5 では、入力用のネイティブ プレースホルダー属性が追加されており、これは高度なブラウザでサ...

きちんとしたHTMLマークアップを使用してページを構築します

インターネットは絶えず進化する有機体です。長期にわたってインターネットの発展に適応できるページを構築...

Docker を使用してイメージをローカルにパッケージ化してデプロイする方法

初めてDockerを使用してイメージをローカルにパッケージ化してデプロイするまず、私のラップトップシ...

CSS3で実装された読み込みアニメーション

成果を達成する実装コード <h1>123WORDPRESS.COM</h1>...

JavaScript はクラス宝くじアプレットを実装します

この記事では、クラス抽選アプレットを実装するためのJavaScriptの具体的なコードを参考までに紹...

MySQLオンラインデッドロック分析練習

序文MySQL を学習する際に、MySQL のロック メカニズムについて簡単に理解したことがあると思...

vsftp を使用して Linux で FTP サーバーを構築する (パラメータの説明付き)

導入この章では、主に Linux で FTP サーバーを構築するプロセスを紹介します。習得すべき重要...

ウェブフロントエンド開発者が知っておくべき 9 つの実用的な CSS プロパティ

1. 角を丸くする今日の Web デザインは、常に最新の開発テクノロジーに追随しており、HTML5 ...

MySQLのinnodb_data_file_pathパラメータを変更する際の注意事項

序文innodb_data_file_path は、innodb テーブルスペース ファイルを指定す...

ハイパーリンクのWebデザイン原則

<br />関連記事: Web コンテンツ ページ作成のための 9 つの実用的なヒント、...

表に斜めヘッダー効果を出す5つの方法

誰もがテーブルをよく知っているはずです。コード内でよく見かけます。テーブルにスラッシュ ヘッダーを追...