フォルダが実際にシンボリックリンクであるかどうかを確認する方法と、フォルダが破損している場合に修正する方法は?

フォルダが実際にシンボリックリンクであるかどうかを確認する方法と、フォルダが破損している場合に修正する方法は?

Linuxにシンボリックリンク、一種のショートカット、フォルダがあるかどうかはどうすればわかりますか?以下のスクリーンショットをご覧ください。

Linuxシェルのシンボリックリンク

見てわかるように、lsコマンドはいくつかのオブジェクトをリストし、そのうちのいくつかは濃い青で、いくつかは薄い青(青緑色)です。このターコイズオブジェクトは何ですか?これは実際のシンボリックリンクですか?

ご覧のとおり、cdhddというハードドライブにアクセスできません。

root@dm500hd:/# cd hdd
-sh: cd: can't cd to hdd

にリダイレクトする必要があるようですが/media/hdd、hddフォルダが欠落していることがわかりました。

この問題を解決する方法はありますか?

修正する:これがls -alコマンドの結果です。

Linuxシェル2のシンボリックリンク

ご覧のとおりhdd -> /media/hdd、赤です。これは、破損しているか自動的にマウントされることを意味します(たとえば、物理ハードドライブが接続されている場合)。

修正する:これがgrep media /etc/auto*コマンドの結果です。

Linuxシェル3のシンボリックリンク

このアイテム/etc/auto.master:/media/net/etc/auto.networkアイテムは何をしますか?

これがls -Fal /mediaコマンドの結果です。

Linuxシェル4のシンボリックリンク

これは役に立ちますか? ...

stat以下は、fileコマンドの結果と/ usrと/ binのリストです。

Linuxシェル5のシンボリックリンク

これはどのようにして私に役立ちますか? …助けになりますか? ...

一方、これは組み込みシステムBusyBoxを搭載したLinuxベースのSTBであることを知っておく必要があります。したがって、すべてのコマンドがサポートされるわけではありません。

修正する:最後のスクリーンショットは、/sbinおよび/usr/sbinのファイルとサポートされているコマンドを示しています。

Linuxシェル6のシンボリックリンク

修正する:新しい共有が追加されました...

以前の共有を削除し、以前と同じ名前で共有を再作成し、2番目の共有も追加しました。今、二つができました。

SHARES
remote share   local share
mydream        dream1
mydream2       dream2

LOCATIONS
remote        local
C:\mydream    /media/net/dream1
C:\mydream2   /media/net/dream2

録音ファイルは/media/net/dream1/movieに保存されます。

また、共有dream2の場合、複数のHDDがHDDとして機能するかどうか疑わしいので、インストーラはHDDの交換としてインストールしないことにしました。どこに記録されますか? 2つの場所に?データレートを2倍にしますか? …それは不可能だと思います。

そのため、dream2 共有に movie というサブフォルダはありません。作成時に、HDD交換用に指定されたフォルダのみがムービーサブフォルダを持つことになります。

ハードドライブをルーティングするcdとに移動します/media/net/dream1。私が(cd..)場合に戻りますroot (/)

root.given.givenにls -al提供されています。 hdd -> media/hdd ls -al hddhdd -> media/hddls -al media/media/net/dream1

また、他のシンボリックリンクがcdある場合も同様です。私は前に気づかなかった。共有がマウントされると自動的に生成されるようです。このハードドライブに移動すると。/mediahddcd/media/net/dream1

1つのシンボリックリンクhdd(/ hdd)hddは、共有フォルダ(/media/net/dream1)を指す別のシンボリックリンク(/media/hdd)を指します。 .....めまい...

Enigma2 イメージ バージョン 3.2.3 または少なくともバージョン 3.2.0 以前はそうではありませんでした。

編集する:2番目の共有をHDD交換に設定すると、録画用のアクティブ共有になります。同時に、以前にHDD交換で動作するように設定された共有は、まだ「はい」(HDD交換で動作)に設定されていても、もはや有効になりません.

dream1 を初めて HDD 交換として使用し(代替として「はい」を選択)、dream2 を HDD 交換として有効にすると、録画に使用される新しい共有になります。 dream1に保存されているビデオファイルを引き続き表示して確認できますが、録画することはできません。 dream1を再度録音するには、まずdream2を「no」(ハードドライブ交換の役割を停止)に設定し、次にdream1を「yes」にリセットする必要があります。

したがって、同時に両方の共有にログインすることはできません。どちらかは行かなければなりません。したがって、夢1または夢2のいずれかであり、両方ではありません。複数のサービス(テレビチャンネル)がすべて同じトランスポンダにある場合は録画が可能であることに注意する必要がありますが、そうでない場合は「無料チューナーなし」というメッセージが表示されます。チューナーが1つしかないセットトップボックスです。

答え1

file、stat、またはlsを使用できます。

文書:

fileコマンドは、タイプ(シンボリックリンク、ディレクトリ、デバイス)またはコンテンツ(テキスト、gzip、イメージ、tar、...、拡張子に関係ありません)に基づいてファイルを分類するために使用されます。

$ファイル/dev/stdout
/dev/stdout: "/proc/self/fd/1"へのシンボリックリンク
$ファイル/proc/self/fd/1
/proc/self/fd/1: "/dev/pts/0"へのシンボリックリンク
$ファイル/dev/pts/0
/dev/pts/0: 特殊文字(136/0)
$ファイル/etc/passwd
/etc/passwd: ASCII テキスト

LS:

$ls -al /dev/stdout
lrwxrwxrwx 1ルートルート15 1月27日07:55 /dev/stdout -> /proc/self/fd/1

統計:

statコマンドは、権限、サイズ、ブロック数などのファイルメタデータを印刷します。

$統計/dev/stdout
  ファイル: '/dev/stdout' -> '/proc/self/fd/1'
  サイズ: 15 ブロック: 0 IO ブロック: 4096 Symlink
デバイス: 5h/5d Inode: 1212 リンク: 1
訪問: (0777/lrwxrwxrwx) Uid: (0/ ルート) Gid: (0/ ルート)
接続時間:2014-01-27 11:22:47.971187828 -0200
修正: 2014-01-27 07:55:13.996981285 -0200
変更: 2014-01-27 07:55:13.996981285 -0200
 生まれます:-

答え2

大きな打撃:

if [[ -h dirname ]]; then
    echo "it's a symbolic link"
    if ! stat $(readlink dirname) &>/dev/null; then
        echo "link target does not exist"
    fi
fi

答え3

指定されたファイルがどのタイプのエンティティであるかを確認する最も簡単な方法は、このfileコマンドを使用することです。ls分類子タグが何であるかを覚えたり、ユーザーとコンピュータによって異なる可能性のあるカラー出力に頼る必要がない、鮮明で明確な出力を提供します。たとえば、

mail ~ # file /test
/test: broken symbolic link to `/nonexist'
mail ~ # file /dev
/dev: directory
mail ~ # file /dev/fd
/dev/fd: symbolic link to `/proc/self/fd'

システムにファイルエントリがない場合、fileこのコマンドを使用すると、statそのファイルエントリの種類とポイントの場所を示します。リンクが壊れていることを確認するには、stat -Lリンクが壊れたときにエラーが発生する逆参照リンクを実行する必要があります。

質問の2番目の部分については、ディレクトリmediaは通常一種の自動インストーラによって管理されます。この/media/hddエントリは、システムがUSB大容量記憶装置に使用することも、正しいタイプのハードドライブ(ATA、SCSI、Xenブロックデバイス)を待っている可能性があります。壊れたリンクは、プログラムがそれを使用しようとしない限り害を及ぼさず、メディアリンクは実際にはユーザーの便宜のためです。/hdd必要に応じてリンクを安全に維持または削除できます。

答え4

  1. はい、ターコイズはシンボリックリンクです。
  2. 彼らが指している場所を確認するには:ls -Fal
  3. 出力ls -Fal /media

これはおそらく一種の自動マウントポイントです。

grep media /etc/auto*波紋を引き起こす可能性があります。

関連情報