在服務器故障,How to list symbolic link chains?(不是我的問題)談論列出所有的符號鏈接,並遵循它們。爲了實現這一點,我們首先考慮一個單獨的目錄。如何在Perl哈希中表示文件系統的符號鏈接?
我想寫一個簡短的工具來做到這一點。將符號鏈接的對放入散列並處理散列看起來很容易。
但後來我可能有類似:
ls -l
total 0
lrwxrwxrwx 1 pjb pjb 1 2010-02-23 08:48 a -> b
lrwxrwxrwx 1 pjb pjb 1 2010-02-23 08:48 b -> c
lrwxrwxrwx 1 pjb pjb 1 2010-02-23 09:03 c -> a
lrwxrwxrwx 1 pjb pjb 1 2010-02-23 09:17 trap -> b
lrwxrwxrwx 1 pjb pjb 1 2010-02-23 09:17 x -> y
lrwxrwxrwx 1 pjb pjb 1 2010-02-23 09:17 y -> b
,其中很明顯,a->b->c
是一個循環,而且陷阱點成環,但要知道x
點成一個圈,我需要遵循位。
一個哈希表示爲:
a => b
b => c
c => a
trap => b
x => y
y => b
但反過來表示是用於標記循環不良起點,更好一旦我知道循環是什麼。
因此,這裏的一些問題:
- 是散列代表符號鏈接的最佳結構?
- 什麼是最好的方式來分離文件系統的圖形,以告訴從樹組件到樹枝的循環類型碎片?
- 是否有比從所有起點手動搜索所有循環更好的算法?
- 從圖論的角度來看,CPAN已經是這種東西了嗎?如果不是,那麼一些好幫手模塊是什麼?
顯然也鼓勵提交示例代碼來解決問題。 – Paul 2010-02-23 17:36:42
向我們展示您到目前爲止所嘗試的內容也受到鼓勵。 :) – 2010-02-23 21:34:37
@brian Doh!我認爲這主要是別人的整潔問題,除了承認一些陷阱之外,並沒有試圖解決這個問題。 – Paul 2010-02-24 18:50:52