親ディレクトリがシンボリックリンクであることをlsに警告するようにするにはどうすればよいですか?

親ディレクトリがシンボリックリンクであることをlsに警告するようにするにはどうすればよいですか?

ちょうど私(またはLinuxに初めてアクセスする人)はユーザーが重複したファイルだと思うので、誤ってrmファイルを削除する可能性があります。次の2つのバイナリがあるとしましょう。

[xiaobai@xiaobai note]$ ls -larthi /bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /bin/seltr2*
[xiaobai@xiaobai note]$ ls -larthi /usr/bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /usr/bin/seltr2*

普通はiノードが同じかどうか見て右だけを見るのに->ロゴまたは。したがって、/ binが/ usr / binへのシンボリックリンクである場合、問題が発生します。

[xiaobai@xiaobai note]$ ls -larthi /bin
16 lrwxrwxrwx. 1 root root 7 Nov 18  2014 /bin -> usr/bin/

したがって、ユーザーがファイルがシンボリックリンクではなく違いがないと思う場合、ユーザーはファイルをrmできます。

[xiaobai@xiaobai note]$ sudo rm /bin/seltr2

最後に/usr/bin/seltr2が同じファイルであることに気づき、構造を要求しました。

[xiaobai@xiaobai note]$ ls /usr/bin/seltr2
/home/xiaobai/ls: cannot access /usr/bin/seltr2: No such file or directory

それでは簡単な方法はありませんか?ls は、親ディレクトリがシンボリックリンクであることを考慮します。、例えば:

[xiaobai@xiaobai note]$ ls -larthi /bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /bin/seltr2* -> /usr/bin/seltr2*

私はいつもinode番号を見ていません。これらの潜在的なエラーを防ぐためのより良い方法はありますか?

ベストアンサー1

root権限を持たない一般ユーザーに同意します。

コメントありがとうございます。今問題を理解しました。記事を再編集しました。

root@host:~# ls -latr /bin/test-dir
total 8
drwxr-xr-x 3 root root 4096 Nov  4 12:01 ..
-rw-r--r-- 1 root root    0 Nov  4 12:02 testfile
drwxr-xr-x 2 root root 4096 Nov  4 12:02 .
root@host:~# ls -latr /usr/bin/test-dir-link
lrwxrwxrwx 1 root root 13 Nov  4 12:03 /usr/bin/test-dir-link -> /bin/test-dir
root@host:~# rm /usr/bin/test-dir-link
root@host:~# ls -latr /bin/test-dir
total 8
drwxr-xr-x 3 root root 4096 Nov  4 12:01 ..
-rw-r--r-- 1 root root    0 Nov  4 12:02 testfile
drwxr-xr-x 2 root root 4096 Nov  4 12:02 .
root@host:~# ls -latr /usr/bin/test-dir-link
ls: cannot access /usr/bin/test-dir-link: No such file or directory

上記のように「symlink」だけが削除されましたが、「target」は削除されませんでした。

また、ファイルにタイプミスがあるようです。あなたのシンボリックリンクは「usr/bin」を指しますが、「/usr/bin」でなければなりません。

これが言葉になりたいですか?

おすすめ記事