web-dev-qa-db-ja.com

パスのコンテキストで「〜」(チルダ)を使用するにはどうすればよいですか?

私はWebアプリケーション開発の初心者です。ファイルを開いて読み取る関数があります。残念ながら、テストサーバーと運用サーバーのディレクトリ構造は異なります。 「〜に関連するパスを使用する」ように言われました。ただし、「〜」でリソースを見つけることができませんでした!

パスのコンテキストでチルダ文字を使用するにはどうすればよいですか?

編集:これはPythonです。 os.path.expanduser( '〜/ path/in/home/area') を使用して問題を修正しました。

43
captcadaver

uNIXの$HOME varであり、通常は/home/usernameです。

「あなたの家」とは、cd ~/MyDocuments/cd /home/user_executing_cd_commnd/MyDocumentsのようなコマンドを実行しているユーザーの家を意味します

38
dierre

$HOMEの値を~に置き換えることがわかっているシェルスクリプトを作成するか、他の言語を使用している場合を除き、ファイルパスのチルダには特別な意味はなく、他の特殊ではないものとして扱われますキャラクター。

シェルスクリプトを記述している場合、シェルは、引数の最初の文字として発生しない限り、チルダを解釈しません。つまり、~/file/path/to/users/home/directory/fileになりますが、./~/fileは文字通りに解釈されます(つまり、.のサブディレクトリにあるfileというファイルは~ ")。

URLで使用される、ユーザーのホームディレクトリの短縮形としてのチルダの解釈(例:http://www.foo.org/~bob)は、Unixから借用した規則です。実装は完全にサーバー固有であるため、Webサーバーのドキュメントを調べて、特別な意味があるかどうかを確認する必要があります。

15
Blrfl

ファイル名にpathlibを使用している場合は、WindowsとLinuxの両方で使用できます(Windowsの回答のためにここに来ました):

python from pathlib import Path p = Path('~').expanduser() print(p)

2
hum3