Uruchomiłem skrypt, który iterował wszystkie pliki w moim systemie Linux i stworzyłem o nich metadane, i spowodował błąd, gdy trafił do zepsutego dowiązania symbolicznego.
Jestem nowicjuszem w * nix, ale mam główną ideę związaną z łączeniem plików i tym, jak powstają zepsute linki. O ile mi wiadomo, są one jak odpowiednik śmieci na ulicy. Rzeczy, które program, który usuwam, nie były wystarczająco inteligentne, aby stwierdzić, że menedżer pakietów istniał i do niego należał, lub coś, co pozostało w tyle podczas aktualizacji. Na początku zacząłem poprawiać skrypt, który uruchamiam, aby je pominąć, a potem pomyślałem: „no cóż, zawsze możemy je usunąć, gdy jesteśmy tutaj ...”
Używam Ubuntu 14.04 (Trusty Tahr). Nie widzę żadnego powodu, aby tego nie robić, ale zanim przejdę do tego i przejdę przez mój system programistyczny, czy istnieje jakikolwiek powód, że może to być okropny pomysł? Czy zepsute dowiązania symboliczne służą czemuś, o czym nie wiem?
Odpowiedzi:
Istnieje wiele przyczyn przerwania dowiązań symbolicznych:
Rozwiązanie: usuń zepsute dowiązanie symboliczne.
Rozwiązanie: znajdź zamierzony cel i napraw łącze.
Rozwiązanie: znajdź zamierzony cel i napraw łącze.
Rozdzielczość: brak, link nie jest wszędzie uszkodzony.
Rozdzielczość: brak, link nie jest zepsuty dla wszystkich.
Rozdzielczość: brak. W takim przypadku usunięcie linku byłoby szkodliwe.
Jeśli możesz ustalić, że dowiązanie symboliczne należy do pierwszej kategorii, to pewnie, śmiało i usuń je. W przeciwnym razie wstrzymaj się od głosu.
Program, który rekurencyjnie przegląda katalogi i dba o zawartość pliku, zwykle powinien ignorować zepsute dowiązania symboliczne.
źródło
Nie usuwaj na ślepo wszystkich wiszących dowiązań symbolicznych. Mogą istnieć tylko w celu przenoszenia niektórych informacji i mogą być bezpieczniejsze niż normalne pliki, ponieważ tworzenie dowiązań symbolicznych jest atomowe.
Na przykład Firefox tworzy plik blokady „blokada”, który jest dowiązaniem symbolicznym, którego wartość ma postać „Adres_IP: + PID”.
źródło
Zarówno fnord, jak i serwer Gatling używają systemu plików Unix jako bazy danych konfiguracji (w przeciwieństwie do, powiedzmy, Microsoft IIS, który korzysta z rejestru Windows, lub Apache, który używa pliku konfiguracyjnego złożonego do analizy).
Na przykład wirtualne hosty to tylko katalogi, a utworzenie nowego wirtualnego hosta jest tak proste, jak
Konfigurowanie plików do wyświetlenia?
Konfigurowanie plików do wykonania jako CGI, a które do obsługi?
I na koniec (i dotyczy tego pytania): konfigurowanie przekierowania?
Otrzymasz teraz dowiązanie symboliczne,
search.html
które nigdzie nie wskazuje, ale ma to zasadnicze znaczenie dla działania Twojej witryny.źródło
Dowiązanie symboliczne może wskazywać na jeszcze pustą lokalizację, aby wymusić utworzenie w określonej lokalizacji lub nazwie systemu plików.
Więc nie - nie usuwaj ich na ślepo.
źródło
Znaczącym minusem usuwania starych linków symbolicznych jest to, że tracisz odniesienie do miejsca, w którym kiedyś wskazywały, które mogą być bardzo cenne!
Powiedzmy, że mam dowiązanie symboliczne do pliku o nazwie „
send_to
”, który wskazuje/Users/myname/tmp
i przypuszczam, że/Users/myname/tmp
nie istnieje.Z linku symbolicznego wiem gdzie plik został przeznaczony być. Na przykład w tym przypadku widzę, że jest to katalog tymczasowy i jeśli muszę go „naprawić”, powinienem rozważyć katalog tymczasowy jako miejsce docelowe.
Podobnie link „
my_config
”,/etc/conf_file
który prowadzi do tego, że „źle”, ponieważconf_file
zmieniono jego nazwę na plik potwierdzenie_, nadal jest użyteczną informacją. Jeśli poszedłeś do/etc
katalogu i zrobiłeśls
i zobaczyłeś, żeconf_file
brakuje pliku o nazwie, aleconfirmation_file
może tam być wystarczająco dużo informacji, aby teraz naprawić link.źródło
Cytowanie z wiersza poleceń systemu Linux (najlepsza książka dla początkujących użytkowników Linuksa, którą można pobrać bezpłatnie tutaj ):
Więc nie, nie usuwałbym dowiązań symbolicznych, ponieważ z pewnością będzie to problem z bólem głowy, a ty ryzykujesz poważnym zepsuciem twojego systemu.
źródło