どこからでもルートまたはホームディレクトリを参照します。

どこからでもルートまたはホームディレクトリを参照します。

paramは私の入力であり、catコマンドに追加されているので、デフォルトでは
eval "cat /a/really/long/path/idk/how/long/$param1"param1を別のものに変更した後、無差別代入なしでhome / rootにアクセスできます。../ルートに直接移動できる構文はありますか?それともこれが家に
cat '/a/really/long/path/idk/how/long' + $param1なる方法だ
cat '/a/really/long/path/idk/how/long/SYNTAX-To-HOME/.bashrc

ベストアンサー1

ファイル名のサフィックスのみを選択でき、ルートディレクトリから始まるパスを表示するには、十分な数のサフィックスを使用することが../唯一の方法です。ルートの途中でパスを「再起動」する方法はありません。また、ファイル内のホームディレクトリを参照する方法がないので、ユーザーのホームディレクトリがあると仮定し、同様のものを使用する必要があります../../../../../home/username(再度、evenを使用)。..//home/username

一部のアプリケーションはファイル名の拡張を行いますが、これは一般的ではありません。比較的一般的な拡張インタラクティブ~/アプリケーションはパスの先頭から拡張されます。コマンドラインアプリケーションはこの操作も実行しません。なぜなら、この拡張はシェルの仕事だからです。

必要な数は、../シンボリックリンクが有効深度を変更するため、制御できないプレフィックスのパスコンポーネントの数であってもなくてもよい。たとえば/dir、 、/foo/foo/barディレクトリで、 がシンボリック/foo/symリンクの場合、これはルートディレクトリです。ただし、シンボリックリンクの場合はyesで、ルートディレクトリに戻る必要があります。/dir/foo/bar/../sym/foo/bar/sym/../foo/sym/../..

../パス長制限が発生しない限り、あまりにも多くは害になりません。

別の可能なアプローチは、親ディレクトリへのシンボリックリンクを使用することです。しかし、そのためにはそのようなシンボルが存在しなければならず、それを理解しなければなりません。マウントポイント(例mount --bind / /a/really/long/path/root:)を使用すると、ディレクトリツリーを離れることもできます。

これまでの私の回答では、ファイル名について説明しました。注射できればシェルコマンド、に見られるように、eval "cat /a/really/long/path/idk/how/long/$param1"パスが解析される方法は関係ありません。たとえば、に設定されているシェル特殊文字を挿入しparam1ますnonexistent || true; cat /the/file/I/want

おすすめ記事