Πώς να δημιουργήσετε σκληρούς συνδέσμους Linux;

How Create Hard Links Linux



Η σύνδεση είναι μια ενδιαφέρουσα δυνατότητα στο Linux. Σε λειτουργικά συστήματα τύπου UNIX, όλα είναι ένα αρχείο. Ένα αρχείο είναι βασικά ένας σύνδεσμος προς ένα inode, έναν ειδικό τύπο δομής δεδομένων που αποθηκεύει τα πάντα για ένα συγκεκριμένο αρχείο εκτός από το αρχικό του όνομα και το πραγματικό του περιεχόμενο. Αυτό είναι το χαρακτηριστικό που συνδέει τις μοχλές. Για να δημιουργήσετε έναν σύνδεσμο σημαίνει να δημιουργήσετε ένα άλλο αρχείο που δείχνει το ίδιο υποκείμενο inode με ένα άλλο αρχείο. Σε πολλές περιπτώσεις, είναι μια απίστευτα χρήσιμη μέθοδος.

Δείτε πώς μπορείτε να δημιουργήσετε σκληρούς συνδέσμους στο Linux.







Σκληροί σύνδεσμοι στο Linux

Πριν βουτήξετε βαθύτερα, ας μιλήσουμε λίγο για σκληρούς και μαλακούς συνδέσμους. Υπάρχουν κάποιες θεμελιώδεις διαφορές μεταξύ τους. Στην περίπτωση ενός σκληρού συνδέσμου, μπορεί να υπάρχει μόνο στο ίδιο σύστημα αρχείων, ενώ ο συμβολικός σύνδεσμος θα παραμείνει μεταξύ συστημάτων αρχείων. Επιπλέον, μπορεί να εκτελεστεί μόνο σε κανονικά αρχεία. Δεν μπορείτε επίσης να δημιουργήσετε σκληρούς συνδέσμους καταλόγου, επομένως δεν δημιουργεί βρόχο καταλόγου.



Εάν διαγραφεί ένα αρχείο του σκληρού συνδέσμου, αφαιρείται ο σύνδεσμος από το υποκείμενο inode.



Η εντολή ls μπορεί να εκτυπώσει το inode ενός αρχείου/καταλόγου προορισμού.





$ls -στο <file_or_dir>>

Δημιουργία σκληρών συνδέσμων

Η δημιουργία ενός σκληρού συνδέσμου είναι αρκετά απλή. Για να δημιουργήσετε συνδέσμους, το ln είναι το ειδικό εργαλείο που διατίθεται σε όλες σχεδόν τις διανομές Linux.



Χρησιμοποιήστε την ακόλουθη δομή εντολών για να δημιουργήσετε έναν σκληρό σύνδεσμο. Σημειώστε ότι ο προορισμός πρέπει να βρίσκεται μέσα στο ίδιο σύστημα αρχείων. Η σημαία -v είναι για λεπτομερή λειτουργία.

$ln -v <πηγή>> <Σύνδεσμος>>


Επαληθεύστε το αποτέλεσμα.

$ls -στο <στόχος>>


Όσον αφορά τη σκληρή σύνδεση καταλόγου, δεν επιτρέπεται. Υποθετικά, είναι ακόμα δυνατή η δημιουργία, αλλά οι περισσότερες διανομές Linux απενεργοποιούν αυτήν τη δυνατότητα, ακόμη και αν εκτελείτε τη δράση με δικαιώματα root. Για τη σύνδεση καταλόγου, χρησιμοποιήστε μαλακούς συνδέσμους.

Μαλακοί σύνδεσμοι

Η μαλακή σύνδεση συνήθως αναφέρεται ως συμβολικοί σύνδεσμοι. Η μαλακή σύνδεση μπορεί να είναι μεταξύ συστημάτων αρχείων. Εξ ορισμού, δεν είναι ένα τυπικό αρχείο, αλλά μάλλον, ένα αρχείο που δείχνει ένα υπάρχον αρχείο. Εδώ, το αρχείο soft link θα έχει διαφορετική τιμή inode, αλλά δείχνει το αρχικό αρχείο.

Ακριβώς όπως η δημιουργία σκληρών συνδέσμων, θα χρησιμοποιούμε το εργαλείο ln. Για να δηλώσετε ότι δημιουργείτε έναν μαλακό σύνδεσμο, προσθέστε τη σημαία -s.

$ln -vs <πηγή>> <προορισμός>>


Επαληθεύστε το αποτέλεσμα.

$ls -στο <στόχος>>

Εάν υπάρχει ήδη σύνδεσμος, μπορείτε να τον ενημερώσετε χρησιμοποιώντας τη σημαία -f που αναγκάζει το ln να ενημερώσει τον σύνδεσμο χωρίς καμία επιβεβαίωση. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τη σημαία -i για τη δημιουργία διαδραστικών συνδέσμων.

$ln -σφ <πηγή>> <προορισμός>>


Μην ξεχάσετε να επαληθεύσετε το αποτέλεσμα.

$ls -στο <στόχος>>

Εύρεση συνδέσμων

Αν υποθέσουμε ότι υπάρχουν πολλοί σύνδεσμοι προς το ίδιο αρχείο, η παρακολούθηση αυτών μπορεί να γίνει δύσκολη. Σε μια τέτοια κατάσταση, χρησιμοποιήστε αυτήν τη μέθοδο για να μάθετε όλους τους συνδέσμους.

Για αυτό, χρειαζόμαστε την τιμή inode του αρχικού αρχείου. Χρησιμοποιήστε την ακόλουθη εντολή για να μάθετε τον αριθμό inode.

$ls -στο <target_file>>


Τώρα, χρησιμοποιήστε τον αριθμό inode για να μάθετε όλους τους συνδέσμους σε αυτό το αρχείο. Εδώ, ο τρέχων ενεργός κατάλογος πρέπει να είναι ο κατάλογος στον οποίο βρίσκεται το αρχικό αρχείο.

$εύρημαΤο-αριθμητικό <inode_value>>

Διαγραφή συνδέσμων

Εάν θέλετε να απενεργοποιήσετε έναν σκληρό σύνδεσμο, ο τρόπος είναι να διαγράψετε το συνδεδεμένο αρχείο.

$rm <Σύνδεσμος>>

Τελικές σκέψεις

Η σύνδεση είναι ένα ισχυρό εργαλείο που μπορείτε να χρησιμοποιήσετε σε πολλές καταστάσεις. Ενώ έρχεται με τους δικούς του περιορισμούς, μπορεί να προσφέρει εξαιρετικά οφέλη σε πολλά σενάρια.

Σας ενδιαφέρει πιο αναλυτικά η εντολή ln; Ελέγξτε πώς να χρησιμοποιήσετε την εντολή ln.

Καλή πληροφορική!