Μαλακός (συμβολικός) σύνδεσμος έναντι σκληρού συνδέσμου

Soft Link Vs Hard Link



Οι συμβολικοί σύνδεσμοι (που ονομάζονται επίσης μαλακοί σύνδεσμοι) και οι σκληροί σύνδεσμοι είναι ένας πόρος πρόσβασης σε αρχεία ή καταλόγους από οποιαδήποτε τοποθεσία. Αυτό το άρθρο θα περιγράψει τις διαφορές μεταξύ συμβολικών συνδέσμων και σκληρών συνδέσμων.

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

Οι σκληροί σύνδεσμοι δεν είναι ένα αρχείο που περιέχει τη διαδρομή προς το αρχικό αρχείο αλλά αντικατοπτρίζουν αντίγραφα του αρχικού αρχείου στο οποίο δείχνουν. Ένα αρχείο και οι σκληροί σύνδεσμοι δεν σχετίζονται με το όνομα ή τη διαδρομή, αλλά με το inode που αποθηκεύει πληροφορίες στο αρχείο, όπως η τοποθεσία, η ημερομηνία δημιουργίας, τα δικαιώματα και άλλα χαρακτηριστικά. Κάθε αριθμός inode είναι μοναδικός μέσα σε ένα σύστημα αρχείων που εμποδίζει τους σκληρούς συνδέσμους να λειτουργούν μεταξύ διαφορετικών διαμερισμάτων ή συστημάτων. Οι σκληροί σύνδεσμοι δεν μπορούν να χρησιμοποιηθούν για τη σύνδεση καταλόγων.







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



Σε όλα τα συστήματα Linux δημιουργούνται τόσο σκληροί όσο και συμβολικοί σύνδεσμοι με την εντολή ln Το Για να ξεκινήσετε, δημιουργήστε πρώτα ένα αρχείο που ονομάζεται LinuxHintFile και ένας κατάλογος που ονομάζεται LinuxHintDirectory όπως φαίνεται στην παρακάτω εικόνα:



αφήLinuxHintFile
rmkdir LinuxHintDirectory
ls
ρίζα@LinuxHint:/Σπίτι/linuxhint#





Για να δημιουργήσετε έναν σκληρό σύνδεσμο που ονομάζεται Link2LHFile στο αρχείο LinuxHintFile τρέξτε στο τερματικό:

lnLinuxHintFile Link2LHFile



Μετά τον έλεγχο με ls βλέπουμε τον σκληρό σύνδεσμο που μόλις δημιουργήσαμε, εάν πληκτρολογήσετε ls -i θα δείτε τα inodes των αρχείων, μπορείτε να επιβεβαιώσετε ότι ο σύνδεσμος που μόλις δημιουργήσαμε έχει τον ίδιο αριθμό inode από το αρχικό αρχείο, πληκτρολογήστε:

ls -Εγώ

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

Μπορείτε να βρείτε σκληρούς συνδέσμους εντός του καταλόγου εργασίας εκτελώντας:

εύρημα -τύποςφά-συνδέσεις+1

Μπορείτε επίσης να βρείτε αρχεία ανά inodes, για αυτήν την εκτέλεση:

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

Όπως βλέπετε, βρέθηκε τόσο το αρχικό αρχείο όσο και ο σκληρός σύνδεσμος που μοιράζονται τον ίδιο αριθμό inode.

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

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

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

Με το πρόγραμμα δημιουργούνται επίσης συμβολικοί σύνδεσμοι ln , αλλά για να είναι συμβολικός/μαλακός ο σύνδεσμος πρέπει να καθορίσουμε την παράμετρο -μικρό , για να δημιουργήσετε έναν συμβολικό σύνδεσμο προς τον κατάλογο LinuxHintDirectory που ονομάζεται LHDLink run:

ln -μικρόLinuxHintDirectory LHDLink

Και μετά τρέξτε ' ls -i Για να ελέγξετε ότι δημιουργήθηκε σωστά:

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

Μπορούμε να παραθέσουμε συμβολικούς συνδέσμους μέσα σε έναν κατάλογο με την εντολή ls -l

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

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