親フォルダを表示するには、「ls -l ..$(which bash)」を使用します。

親フォルダを表示するには、「ls -l ..$(which bash)」を使用します。

私が作業しているbashを確認しました。

$ which bash
/usr/local/bin/bash
$ ls -l $(which bash)
lrwxr-xr-x 1 me 30 Oct 27 10:40 /usr/local/bin/bash -> ../Cellar/bash/4.4.23/bin/bash

次に、bashの親ディレクトリを確認します。usr/local/bin/

$ ls -l ../$(which bash)
ls: cannot access '..//usr/local/bin/bash': No such file or directory
$ ls -l ..$(which bash)
ls: cannot access '../usr/local/bin/bash': No such file or directory

残念ながら、私は別のミスを犯しました。

コマンド置換$を使用してbashから親フォルダに移動するには?

ベストアンサー1

あなたがやっていることは終了せずに実行しようとしていることですls..//usr/local/bin/bash

$ echo ../$(which bash)
..//usr/local/bin/bash

また、を使用するとls -l ..$(which bash)相対アドレスが指定されるため、現在の作業ディレクトリの場所によって結果が異なります。

したがって、これはエラーを引き起こすべきではありません(親ディレクトリではなくファイルを探します)。

$ cd /usr
$ ls -ld ../$(which bash)

dirname次のコマンドを使用する必要があります。

$ dirname $(which bash)
/bin

または:

$ ls -ld $(dirname $(which bash))
drwxr-xr-x 2 root root 4096 Oct 17 16:46 /bin

ファイルがリンクされている場合(例:あなたの場合はbash、私の場合はsh):

$ ls -ld $(dirname $(readlink -f $(which sh)))
drwxr-xr-x 2 root root 4096 Oct 17 16:46 /bin

おすすめ記事