Bestanden Kopiëren met Behulp van de “install” – Commando op een Linux

0
69

installeren is een veelzijdig bestand-kopiëren opdracht in Linux en macOS. Het is perfect voor de power-user op zoek naar efficiëntie. Lees dit artikel om te ontdekken hoe het werk slimmer en niet harder.

Wacht—Het is Niet Voor het Installeren van Software?

Het install commando wellicht de meest misleidende naam van een van de Linux-commando ‘ s. Het maakt eigenlijk niet te installeren software. Als u probeert te installeren van een software-pakket vanaf de opdrachtregel in Ubuntu of een andere Debian-gebaseerde distributie, het gebruik, de apt-get-opdracht. Op andere Linux distributies, gebruik maken van uw Linux-distributie is de package beheer tool in plaats daarvan—bijvoorbeeld dnf op Fedora of zypper op openSUSE.

Dus Wat Is installeren?

In een notendop installeren en combineert elementen van de cp (copy), chown (change owner), chmod (change mode), mkdir (make directory) en de strip (strip symbolen) commando ‘ s. Hiermee kunt u functies gebruiken van al die in één enkele handeling.

Het install commando:

  • Het kopiëren van bestanden, zoals het cp commando.
  • Kiezen of u bestaande bestanden wilt overschrijven.
  • Het maken van de doel directory als het niet bestaat, zoals mkdir.
  • Stel de gebruiker toestemming vlaggen van de bestanden, net als het chmod commando.
  • Stel de eigenaar van de bestanden, net als het chown commando.
  • Verwijderen van niet-essentiële bagage van uitvoerbare bestanden, net als de strip-opdracht.

Ondanks alle functionaliteit, het install commando niet al te veel opties te kampen met.

Wanneer Zou Je Het Gebruiken

Het install commando zal waarschijnlijk niet elke dag gebruikt worden. Het is handig, maar alleen voor bepaalde situaties. Een scenario waar de installatie komt in zijn eigen software ontwikkeling. Laten we zeggen dat je de programmering van een nieuw programma. Je zult moeten testen buiten de ontwikkeling van de omgeving. Om te doen dat u nodig hebt om te kopiëren van de nieuwe programma bestanden naar een map test. De map test zou moeten worden gemaakt, en u moet de juiste machtigingen en de eigendom voor van de bestanden.

Want ontwikkeling is een iteratief activiteit, kunt u dit te doen in de volgorde van handelingen vele, vele malen. Het install commando doet al het zware werk voor u. Ten slotte, wanneer uw nieuwe tool is klaar om uitgerold te worden, u kunt installeren om het te kopiëren met de juiste machtigingen voor de uiteindelijke werkplek.

Een Voorbeeld

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

Totdat deze klaar is voor release zal worden getest in een map ~/test/ana. De leden van de geek groep machtigingen voor lezen en uitvoeren. Andere gebruikers hebben machtigingen voor lezen en uitvoeren. Het install commando maakt gebruik van dezelfde numerieke representatie voor machtigingen als chmod doet. Onze programmeur heeft besloten dat de rechten moeten worden ingesteld:

  • Eigenaar: Lezen, schrijven en uitvoeren.
  • Groep: Lezen en uitvoeren.
  • Anderen: alleen Uitvoeren.

Het Gebruik van de installatie Opdracht

Onze fictieve programmeur werken map ~/werk. Hij heeft geschreven voor het programma, samengesteld en geproduceerd een binaire genaamd ana. Hij is al gemaakt van het data base bestand dat ana werkt met Woorden.db. Dus beide bestanden zijn klaar om te testen. Laten we een kijkje nemen bij hen:

ls -l ana Woorden.db

De ana utility hij net heeft geschreven maakt anagrammen uit een zin die op de commando-regel. Controle testen is heel eenvoudig.

Onze programmeur heeft ingeroepen, ana met de zinsnede “biscuit” en alles lijkt goed. Hij wil nu deze twee bestanden kopiëren naar de ~/test/ana map om te zien of de nieuwe functies van het hulpprogramma juist weg van de ontwikkeling van de omgeving. Hij geeft de volgende opdracht:

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

De opties die gebruikt worden op de commando-regel:

  • D: mappen Maken, met inbegrip van de bovenliggende mappen, indien nodig.
  • v: Uitgebreide lijst elk directory als het is gemaakt en elke kopiëren van een bestand als het is uitgevoerd.
  • t: Doel-directory.

We kunnen zien dat het installeren maakt de ~/test directory, en maakt vervolgens de ~/test/ana directory. De bestanden worden weergegeven die door één als ze worden gekopieerd naar de doelmap.

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

ls -l

De volgende stap is het testen van de ana-hulpprogramma door te roepen in de ~/test/ana directory.

Het programma werkt zoals verwacht, dat is geweldig. Echter, de machtigingen zijn niet correct. De eis is te stellen de leden van de groep geek te hebben machtigingen voor lezen en uitvoeren, en voor andere gebruikers hebben alleen uitvoeren.

We pakken beide deze zaken heel eenvoudig met de volgende opdracht. Let op het gebruik van sudo om de opdracht met root rechten. De -o -g en opties vereist dit. We worden gevraagd voor ons wachtwoord wanneer geven we het commando.

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

  • De -b (back-up) optie maakt back-ups van de bestanden voordat ze worden overschreven.
  • De -S (achtervoegsel) optie definieert het achtervoegsel voor de back-up bestanden. Als u niet geven een achtervoegsel van een ~ (tilde) is gebruikt. We vragen installeren voor het gebruik van een achtervoegsel .bak.
  • We zetten de eigenaar van het bestand dave met behulp van de -o (eigenaar) optie.
  • De -g (groep) optie vereist de naam van een groep. Dit wordt de groep eigenaar van de bestanden. De groep die we gaan gebruiken heet geek.
  • De -m (modus) optie stelt u het bestand modi voor de bestanden, met behulp van de standaard chmod numeriek syntaxis.

We hoeven niet langer te gebruiken -D (mappen maken) optie, omdat we weten dat de test map bestaat al. We hebben ook weggelaten-v (verbose) optie. Lijst van de bestanden in onze ~/test/ana directory toont ons de details van het bestand:

ls -l

Dit bevestigt dat al onze eisen wordt voldaan.

  • De bestanden zijn gekopieerd naar het testen van de directory.
  • De machtigingen zijn ingesteld.
  • dave is de eigenaar van de bestanden.
  • De geek groep is de groep eigenaar van de twee bestanden.
  • Back-ups zijn gemaakt van elk bestand, genaamd ana.bak en Woorden.db.bak.

Dat alles werd bereikt door het gebruik van een commando. Netjes.

Onze programmeur maakt een aantal laatste wijzigingen aan het programma en opnieuw compileren. De bestanden die zijn gewijzigd moeten worden gekopieerd naar de ~/test/ana directory van de ~/werk-directory. Dit kunnen We doen door de-C (vergelijken) optie. Als het bronbestand en het doelbestand te maken, zijn de bron bestand niet gekopieerd.

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

Lijst van de bestanden in de doelmap toont ons dat de grootte van het bestand van de ana-bestand is gewijzigd. Hij is groter dan de ana.bakfile. De tijdstempel van ana is ook veranderd. Deze wijzigingen worden omdat de nieuwe versie van het bestand is gekopieerd hier.

ls -l

De grootte van het bestand en de tijdstempel van de Woorden.db-bestand niet hebt gewijzigd. Er zijn geen wijzigingen aangebracht aan de Woorden.db-bestand, dus het was niet gekopieerd. Op een project met vele bestanden de -C (vergelijken) – optie kan een hoop tijd besparen en de harde schijf churn, door alleen het kopiëren van de bestanden die zijn gewijzigd.

De programmeur heeft opnieuw getest dat de ana-hulpprogramma blijft werken.

Het is tijd om gebruik te installeren om de bestanden te kopiëren naar de /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 hoeven we niet te maken die map. We kunnen gebruik maken van een aangepaste versie van onze laatste opdracht.

We hebben veranderd de doel directory /usr/local/bin. We hebben verwijderd van de -C (vergelijken) optie, want er zijn geen kopieën van deze bestanden in de doelmap nog, dus er is niets om mee te vergelijken. Er is ook niets om een back-up van, dus we kunnen verwijderen van de -b (back-up) en de optie -S (achtervoegsel) optie.

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

We kunnen de lijst die de bestanden zijn aangekomen in /usr/local/bin:

ls -l

En als laatste test laten we verander de map naar onze home directory en kijken of we kunnen een beroep doen op onze nieuwe utility.

Merk op dat we niet moeten voorwoord de ana opdracht ./ dat betekent dat het wordt uitgevoerd door /usr/local/bin. Missie volbracht.

Wij vermeld, dat het installeren kunnen strip uit redundante symbool tabellen en andere bagage van binnen het binaire bestand, om het te verminderen in omvang. Laten we dat nu doen. Let op dat de opdracht onder geen Woorden.db. Dit is omdat Woorden.db is een database bestand, niet in een uitvoerbaar binair bestand. Kopiëren en het verkleinen van de binaire bestand ana kunnen we gebruik maken van de volgende opdracht. Wij hebben de -s (krimpen) optie met een kleine letter ‘ s.” We hebben toegevoegd in de -b (back-up) en de optie -S (achtervoegsel) optie, met een hoofdletter ‘S’.

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

Lijst van de bestanden in /usr/local/bin stelt ons in staat om het vergelijken van de grootte van de ana-bestand met de back-up versie. De ana-bestand is gereduceerd tot bijna 60% van de vorige grootte.

ls -l /usr/local/bin

In Het Kort

Het install commando geschikt voor een mooie niche gebruiken. Voor veel mensen zal het niet worden gebruikt, dag in dag uit, of eventueel van maand tot maand. Ondanks dat het install commando is een goed hulpmiddel om bekend te zijn met en in uw arsenaal van trucs. Voor die momenten dat je het nodig hebt, het beloont uw leercurve verhoogt efficiëntie, eenvoud en gewoon minder toetsaanslagen.