Bestanden kopiëren met de opdracht “installeren” op Linux

Concept art van Bash op een Ubuntu Linux-desktop
Fatmawati Achmad Zaenuri / Shutterstock.com

install is een veelzijdige opdracht voor het kopiëren van bestanden in Linux en macOS. Het is perfect voor de krachtige gebruiker die op zoek is naar efficiëntie. Lees dit artikel om te ontdekken hoe u slimmer kunt werken, niet harder.

Wacht – is het niet om software te installeren?

De install commando heeft misschien de meest misleidende naam van een van de Linux-commando’s. Het installeert eigenlijk geen software. Als u een softwarepakket probeert te installeren vanaf de opdrachtregel in Ubuntu of een andere op Debian gebaseerde distributie, gebruikt u het apt-get opdracht. Gebruik in andere Linux-distributies de pakketbeheertool van uw Linux-distributie, bijvoorbeeld dnf op Fedora of zypper op openSUSE.

Dus wat doet de installatie?

In een notendop install combineert elementen uit de cp (kopiëren), chown (wijzig eigenaar), chmod (wijzigingsmodus), mkdir (maak directory), en strip (strip symbolen) commando’s. Hiermee kunt u alle functies in één handeling gebruiken.

De install commando kan:

  • Kopieer bestanden zoals het cp opdracht.
  • Kies of u bestaande bestanden wilt overschrijven.
  • Maak de doelmap als deze niet bestaat, zoals mkdir.
  • Stel de gebruikersmachtigingsvlaggen van de bestanden in, net als de chmod opdracht.
  • Stel de eigenaar van de bestanden in, net als de chown opdracht.
  • Verwijder niet-essentiële bagage uit uitvoerbare bestanden, net als het strip opdracht.

Ondanks al die functionaliteit is de install commando heeft niet te veel opties om mee te kampen.

man-pagina installeren

Wanneer zou je het gebruiken?

De install commando zal waarschijnlijk niet elke dag worden gebruikt. Het is handig, maar alleen voor bepaalde situaties. Een scenario waar install komt tot zijn recht in softwareontwikkeling. Stel dat u een nieuw hulpprogramma aan het programmeren bent. U moet tests uitvoeren buiten de ontwikkelomgeving. Om dat te doen, moet u de nieuwe programmabestanden naar een testdirectory kopiëren. De testmap moet mogelijk worden gemaakt en u moet de juiste machtigingen en eigendomsrechten voor de bestanden instellen.

Omdat ontwikkeling een iteratieve activiteit is, kunt u deze reeks acties uiteindelijk vele, vele keren uitvoeren. De install command doet al het zware werk voor je. Eindelijk, wanneer uw nieuwe hulpprogramma klaar is om te worden geïmplementeerd, kunt u install om het met de juiste machtigingen naar de uiteindelijke werklocatie te kopiëren.

Een voorbeeld

Een programmeur werkt aan zo’n nieuw hulpprogramma, genaamd ana. Het bestaat uit een uitvoerbaar binair bestand en een database. Na het testen moet het worden gekopieerd naar /usr/local/bin om het beschikbaar te maken voor alle gebruikers van het Linux-systeem. U moet de bestandsnamen en mappaden in ons voorbeeld vervangen door de bestanden en paden die u op uw computer gebruikt wanneer u install.

Totdat het klaar is voor uitgave, wordt het getest in een directory met de naam ~/test/ana. Leden van de geek groep heeft machtigingen voor lezen en uitvoeren. Andere gebruikers hebben ook machtigingen voor lezen en uitvoeren. De install commando gebruikt dezelfde numerieke weergave voor machtigingen als chmod doet. Onze programmeur heeft besloten dat de rechten moeten worden ingesteld op:

  • Eigenaar: lezen, schrijven en uitvoeren.
  • Groep: lezen en uitvoeren.
  • Overige: alleen uitvoeren.

Hoe u het install Opdracht

De werkmap van onze fictieve programmeur is ~/work. Hij heeft het programma geschreven, gecompileerd en een binair bestand gemaakt met de naam ana. Hij heeft het databasebestand dat al gemaakt ana werkt met, Words.db. Dus beide bestanden zijn klaar om te testen. Laten we ze eens bekijken:

ls -l ana Words.db

De ana hulpprogramma dat hij zojuist heeft geschreven, maakt anagrammen uit een zin die op de opdrachtregel staat. Verificatietesten zijn vrij eenvoudig.

test van een hulpprogramma in de werkmap

Onze programmeur heeft aangeroepen ana met de uitdrukking “koekje” en alles lijkt goed. Hij wil deze twee bestanden nu kopiëren naar het ~/test/ana directory om te zien of het nieuwe hulpprogramma correct functioneert buiten de ontwikkelomgeving. Hij geeft het volgende bevel:

install -D -v ana Words.db -t ~/test/ana

Installeer het commando naar / test / ana

De opties die op de opdrachtregel werden gebruikt, waren:

  • D: Maak mappen aan, inclusief bovenliggende mappen, indien nodig.
  • v: Uitgebreid, maak een lijst van elke map zoals deze is gemaakt en elke bestandskopie terwijl deze wordt uitgevoerd.
  • t: Doeldirectory.

Dat kunnen we zien install creëert de ~/test directory en maakt vervolgens het ~/test/ana directory. De bestanden worden een voor een weergegeven terwijl ze naar de doelmap worden gekopieerd.

Lijst van de bestanden in ~/test/ana bevestigt dat ze correct zijn gekopieerd.

ls -l

ls in / test / ana directory

De volgende stap is om het ana hulpprogramma door het aan te roepen in de ~/test/ana directory.

test van ana utility in / test / ana directory

Het hulpprogramma werkt zoals verwacht, wat geweldig is. De machtigingen zijn echter niet correct. De vereiste is om leden van de groep aan te stellen geek om lees- en uitvoeringsrechten te hebben, en voor andere gebruikers om alleen uit te voeren.

We kunnen beide problemen eenvoudig oplossen met de volgende opdracht. Let op het gebruik van sudo om de opdracht uit te voeren met rootrechten. De -o en -g en opties vereisen dit. We zullen om ons wachtwoord worden gevraagd wanneer we de opdracht geven.

sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

install commando met back-up opties en premissions instellingen

  • De -b (back-up) optie maakt back-ups van de bestanden voordat ze worden overschreven.
  • De -S (suffix) optie definieert het achtervoegsel voor de back-upbestanden. Als u geen achtervoegsel opgeeft, is een ~ (tilde) wordt gebruikt. We vragen install om een ​​achtervoegsel van te gebruiken .bak.
  • We hebben de eigenaar van het bestand ingesteld op dave de … gebruiken -o (eigenaar) optie.
  • De -g (groeps) optie vereist de naam van een groep. Dit wordt de eigenaarsgroep van de bestanden. De groep die we gaan gebruiken heet geek.
  • De -m (modus) optie stelt de bestandsmodi voor de bestanden in met behulp van de standaard chmod numerieke syntaxis.

We hoeven de -D (maak mappen aan), omdat we weten dat de testmap al bestaat. We hebben ook de -v (uitgebreide) optie. Lijst van de bestanden in onze ~/test/ana directory toont ons de bestandsdetails:

ls -l

ls in / test / ana directory

Dit bevestigt dat aan al onze eisen is voldaan.

  • De bestanden zijn gekopieerd naar de testmap.
  • De rechten zijn correct ingesteld.
  • dave is de eigenaar van de bestanden.
  • De geek group is de eigenaarsgroep van de twee bestanden.
  • Er zijn back-ups gemaakt van elk bestand, genaamd ana.bak en Words.db.bak.

Dat alles werd bereikt door het gebruik van één commando. Netjes.

Onze programmeur brengt enkele laatste wijzigingen aan in het hulpprogramma en compileert opnieuw. De bestanden die zijn gewijzigd, moeten worden gekopieerd naar het ~/test/ana directory uit het ~/work directory. We kunnen dit doen door de -C (vergelijk) optie. Als het bronbestand en het doelbestand hetzelfde zijn, wordt het bronbestand niet gekopieerd.

sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

installeer commando met -C vergelijk optie

Door de bestanden in de doelmap op te sommen, kunnen we zien dat de bestandsgrootte van het ana bestand is gewijzigd. Het is groter dan de ana.bakhet dossier. Het tijdstempel op ana is ook veranderd. Deze wijzigingen zijn omdat de nieuwe versie van het bestand hier is gekopieerd.

ls -l

ls in / test / ana met het hulpprogramma test fo ana

De bestandsgrootte en het tijdstempel van het Words.db bestand zijn niet gewijzigd. Er zijn geen wijzigingen aangebracht in het Words.db bestand, dus het werd niet gekopieerd. Op een project met veel bestanden is de -C (vergelijk) optie kan veel tijd en hardeschijfverloop besparen, door alleen die bestanden te kopiëren die zijn gewijzigd.

De programmeur heeft opnieuw getest dat het ana hulpprogramma blijft werken.

Het is tijd om te gebruiken install om de bestanden naar het /usr/local/bin directory. Dit maakt het nieuwe hulpprogramma beschikbaar voor alle gebruikers van deze Linux-computer. We weten dat /usr/local/bin bestaat, dus we hoeven die map niet te maken. We kunnen een aangepaste versie van ons laatste commando gebruiken.

We hebben de doelmap gewijzigd in zijn /usr/local/bin. We hebben de -C (vergelijk) optie omdat er nog geen kopieën van deze bestanden in de doelmap staan, dus er is niets om mee te vergelijken. Evenzo is er niets om een ​​back-up van te maken, dus we kunnen het -b (backup) optie en de -S (achtervoegsel) optie.

sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

installeer het kopiëren van bestanden naar / usr / local / bin

We kunnen vermelden dat de bestanden zijn aangekomen /usr/local/bin:

ls -l

ls van / usr / local / bin

En als laatste test laten we de directory naar onze homedirectory wijzigen en kijken of we van daaruit ons nieuwe hulpprogramma kunnen aanroepen.

test van een hulpprogramma

Merk op dat we het ana commando met ./ wat betekent dat het wegrent /usr/local/bin. Missie volbracht.

We zeiden dat install overtollige symbolentabellen en andere bagage uit het binaire bestand kan verwijderen om het in omvang te verkleinen. Laten we dat nu doen. Merk op dat de onderstaande opdracht geen Words.db bevat. Dit komt doordat Words.db een databasebestand is, geen binair uitvoerbaar bestand. Om het binaire bestand te kopiëren en te verkleinen ana we kunnen het volgende commando gebruiken. We hebben de optie -s (verkleinen) toegevoegd met een kleine letter “s”. We hebben de optie -b (backup) en de optie -S (suffix) weer toegevoegd, met een hoofdletter “S.”

sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

installeer optie met -s strip optie

De bestanden in /usr/local/bin stelt ons in staat om de grootte van de ana bestand met zijn back-upversie. De ana bestand is verkleind tot bijna 60% van de vorige grootte.

ls -l /usr/local/bin

ls in de werkmap

Samengevat

De de install commando is geschikt voor een mooi nichegebruik. Voor veel mensen zal het niet dag in dag uit, of mogelijk van maand tot maand, worden gebruikt. Ondanks dat, de install command is een goed hulpmiddel om vertrouwd mee te zijn en om in je arsenaal aan trucs te hebben. Voor die gelegenheden dat u het nodig heeft, beloont het uw leercurve met verbeteringen in efficiëntie, eenvoud en gewoon minder toetsaanslagen.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in