Als u een groep bestanden moet transporteren, back-uppen of via e-mail moet verzenden, gebruikt u een archiverings- (of groeperings-)tool zoals teer, meestal gebruikt met een compressieprogramma zoals gzip, bzip2, of xz.
Uw keuze voor een compressietool wordt waarschijnlijk bepaald door de compressiesnelheid en -snelheid van elk. Van deze drie compressietools, gzip is de oudste en biedt de minste compressie, bzip2 biedt verbeterde compressie, en xz is de nieuwste en biedt de beste compressie. Doorgaans hebben bestanden die met deze hulpprogramma's zijn gecomprimeerd: .gz, .bz2, of .xz extensies resp.
Opdracht | Afkorting | Beschrijving |
-creëren | C | Creëert een tar-archief |
–aaneenschakelen | EEN | Voegt tar-bestanden toe aan een archief |
–toevoegen | R | Voegt niet-tar-bestanden toe aan een archief |
-bijwerken | jij | Voegt bestanden toe die nieuwer zijn dan die in een archief |
–diff of –vergelijk | NS | Vergelijkt een archief met bestanden op schijf |
-lijst | t | Geeft de inhoud van een tarball weer |
–uitpakken of –halen | x | Extraheert bestanden uit een archief |
Bewerkingsmodificator: | Afkorting | Beschrijving |
—directory dir | C | Wijzigingen in directory dir voordat bewerkingen worden uitgevoerd |
—dezelfde-machtigingen en —dezelfde eigenaar | P | Behoudt respectievelijk machtigingen en eigendomsinformatie. |
–uitgebreid | v | Geeft een overzicht van alle bestanden terwijl ze worden gelezen of uitgepakt; indien gecombineerd met –list, worden ook bestandsgroottes, eigendom en tijdstempels weergegeven |
—bestand uitsluiten | — | Sluit bestand uit het archief uit. In dit geval kan het bestand een echt bestand of een patroon zijn. |
—gzip of —gunzip | z | Comprimeert een archief via gzip |
–bzip2 | J | Comprimeert een archief via bzip2 |
–xz | J | Comprimeert een archief via xz |
Misschien wilt u de effectiviteit van elk hulpmiddel vergelijken voordat u besluit om het ene of het andere te gebruiken. Houd er rekening mee dat bij het comprimeren van kleine bestanden of een paar bestanden, de resultaten mogelijk niet veel verschillen vertonen, maar u een glimp kunnen geven van wat ze te bieden hebben.
# tar cf ApacheLogs-$(date +%Y%m%d).tar /var/log/httpd/* # Maak een gewone tarball. # tar czf ApacheLogs-$(date +%Y%m%d).tar.gz /var/log/httpd/* # Maak een tarball en comprimeer met gzip. # tar cjf ApacheLogs-$(date +%Y%m%d).tar.bz2 /var/log/httpd/* # Maak een tarball en comprimeer met bzip2. # tar cJf ApacheLogs-$(date +%Y%m%d).tar.xz /var/log/httpd/* # Maak een tarball en comprimeer met xz.
Als u back-ups maakt van de thuismappen van gebruikers, wilt u de afzonderlijke bestanden opslaan met de originele machtigingen en eigendom in plaats van ze te wijzigen in die van het gebruikersaccount of de daemon die de back-up. In het volgende voorbeeld worden deze kenmerken behouden terwijl de back-up wordt gemaakt van de inhoud in de /var/log/httpd
map:
# tar cJf ApacheLogs-$(datum +%Y%m%d).tar.xz /var/log/httpd/* --same-permissions --same-owner.
In Linux zijn er twee soorten links naar bestanden: harde links en zacht (ook wel symbolische) links genoemd. Aangezien een harde link een andere naam vertegenwoordigt voor een bestaand bestand en wordt geïdentificeerd door hetzelfde inode, verwijst het vervolgens naar de daadwerkelijke gegevens, in tegenstelling tot symbolische koppelingen, die in plaats daarvan naar bestandsnamen verwijzen.
Bovendien nemen harde links geen ruimte in op schijf, terwijl symbolische links een kleine hoeveelheid ruimte in beslag nemen om de tekst van de link zelf op te slaan. Het nadeel van harde links is dat ze alleen kunnen worden gebruikt om naar bestanden te verwijzen binnen het bestandssysteem waar ze zich bevinden, omdat inodes uniek zijn binnen een bestandssysteem. Symbolische links redden de dag, in die zin dat ze naar een ander bestand of map verwijzen op naam in plaats van op inode, en daarom de grenzen van het bestandssysteem kunnen overschrijden.
De basissyntaxis om koppelingen te maken is in beide gevallen vergelijkbaar:
# ln TARGET LINK_NAME # Harde link met de naam LINK_NAME naar bestand met de naam TARGET. # ln -s TARGET LINK_NAME # Zachte link met de naam LINK_NAME naar bestand met de naam TARGET.
Er is geen betere manier om de relatie tussen een bestand en een harde of symbolische link die ernaar verwijst te visualiseren, dan om die links te creëren. In de volgende schermafbeelding ziet u dat het bestand en de harde link die ernaar verwijst dezelfde inode delen en beide worden geïdentificeerd door hetzelfde schijfgebruik van 466 bytes.
Aan de andere kant resulteert het maken van een harde link in een extra schijfgebruik van 5 bytes. Niet dat je opslagcapaciteit opraakt, maar dit voorbeeld is genoeg om het verschil tussen een harde link en een zachte link te illustreren.
Een typisch gebruik van symbolische koppelingen is om te verwijzen naar een versiebestand in een Linux-systeem. Stel dat er meerdere programma's zijn die toegang tot het bestand nodig hebben fooX.Y, die onderhevig is aan frequente versie-updates (denk bijvoorbeeld aan een bibliotheek). In plaats van elke afzonderlijke verwijzing bij te werken naar: fooX.Y elke keer dat er een versie-update is, is het verstandiger, veiliger en sneller om programma's te laten kijken naar een symbolische link genaamd gewoon foo, die op zijn beurt verwijst naar de werkelijke fooX.Y.
Dus, wanneer? x en Y wijzigen, hoeft u alleen de symbolische link foo te bewerken met een nieuwe bestemmingsnaam in plaats van elk gebruik van het bestemmingsbestand bij te houden en bij te werken.
In dit artikel hebben we enkele essentiële vaardigheden voor bestands- en directorybeheer besproken die deel moeten uitmaken van de toolset van elke systeembeheerder. Zorg ervoor dat u ook andere delen van deze serie doorneemt om deze onderwerpen te integreren met de inhoud die in deze zelfstudie wordt behandeld.
Laat het ons gerust weten als je vragen of opmerkingen hebt. We zijn altijd meer dan blij om van onze lezers te horen.