どのようにこれが起こったのかはわかりませんが、それ自体がシンボリックリンクになったファイルがたくさんあります。ファイルを回復する方法はないようですが、ありますように。これがls -lが言うものです
lrwxrwxrwx 1 bob users 50 Sep 9 21:45 background.png -> /path/to/background.png
ファイルの1つを切断しようとしましたが、残念ながらファイルが消えていました。私もreadlinkを試しました。 Readlinkによると、ファイルパスは/path/to/Background.pngです。
私が言ったように、私はこれがどのように起こったのか本当にわかりません。これらすべてのファイルは以前の管理者から受け継がれました。解決策は何ですか?
答え1
ファイルの場合はい自分へのシンボリックリンクが存在せず、データが存在せず、それにアクセスしようとするとループが発生し、最終的にエラーが発生します。
例えば
$ ls -l myfile
lrwxrwxrwx 1 sweh sweh 19 Sep 9 22:38 myfile -> /path/to/here/myfile
$ cat myfile
cat: myfile: Too many levels of symbolic links
データがないため、これらのシンボリックリンクを削除してもデータは失われません。はい保存するデータがありません。
Too many levels of symbolic links
ファイルの試行中にエラーが発生しない場合、cat
ファイルは次のようになります。いいえそれ自体へのリンクです。
答え2
ln
〜するいいえファイル自体へのリンクでファイルを上書きします。以下を使用すると、ファイル自体にリンクされたファイルを取得できます。
$ ln -s `pwd`/myfile myfile
$ ls -l myfile
lrwxrwxrwx 1 grochmal users 25 Sep 10 03:41 myfile -> /home/grochmal/tmp/myfile
ただし、データを含むファイルを使用しようとすると、次のようになります。
$ rm -f myfile
$ echo yay > myfile
$ ln -sf `pwd`/myfile myfile
ln: '/home/grochmal/tmp/myfile' and 'myfile' are the same file
ln
一方、あるファイルは別のファイルへのリンクで上書きされます。
しかし、自分を指すリンクがデータがまったくないファイル(またはソフトリンクが生成される前に明示的に削除されたファイル)であることはかなり確信できます。
(Linuxではln
fromを使用しますcoreutils
。つまり)