[解決済み] ホームディレクトリから相対的にファイルを開く方法
2023-02-04 03:54:48
質問
以下は
Errno::ENOENT: No such file or directory
で、ファイルが存在しても失敗します。
open('~/some_file')
しかし、こんなこともできるのです。
open(File.expand_path('~/some_file'))
2つ質問があります。
-
なぜ
open
はチルダがホームディレクトリを指していると処理するのでしょうか? -
よりももっと簡単な方法はありますか?
File.expand_path
?
どのように解決するのですか?
-
シェル (bash、zsh など) はワイルドカードの展開を担当します。したがって、最初の例ではシェルがないため展開されません。チルダを使用して
$HOME
を指すためにチルダを使うのは単なる慣習に過ぎません。File.expand_path
のドキュメントを見ると、チルダを正しく解釈していますが、これは関数自体の機能であり、基礎となるシステムに固有のものではありません; またFile.expand_path
は$HOME
環境変数が正しく設定されている必要があります。そこで、考えられる代替案として... -
これを試してください。
open(ENV['HOME']+'/some_file')
十分に巧妙であることを望みます。個人的には、環境変数を使う方が
expand_path
.
関連
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] gemのインストールで --no-ri --no-rdoc をデフォルトにするには?
-
[解決済み] Rubyでディレクトリを作成する
-
[解決済み] Ubuntu 14.04にRuby 2.1.4をインストールする方法
-
[解決済み] 最大値のハッシュのキーはどのように見つけるのですか?
-
[解決済み] Rubyの配列で同じ文字列の要素をカウントする方法
-
[解決済み] OSX 10.9 MaverickにNokogiriをインストールするとエラーになる?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] レスキューVSシドキック?[クローズド]
-
[解決済み] Hash each ループでインデックスにアクセスすることは可能ですか?
-
[解決済み] 文字列を正規表現に変換する ruby
-
[解決済み] Rubyでコンソールから入力を読み込む?
-
[解決済み] このタスクを実行するには、Ruby と Sass をインストールし、PATH に配置する必要があります」という警告を解決するには?
-
[解決済み] Rubyのsend()は何をするのですか?
-
[解決済み] Capybaraで要素の正確なテキストをマッチングして要素を見つける方法
-
[解決済み] Rubyで既存のハッシュに追加する方法
-
[解決済み] Rubyで文字列中のある文字の出現回数を検索する
-
[解決済み] Rubyです。変数を文字列にマージする