Fájlok másolása az „install” paranccsal Linuxon

Az install egy sokoldalú fájlmásoló parancs Linux és macOS rendszeren. Tökéletes a nagy teljesítményű felhasználók számára, akik hatékonyságot keresnek. Olvassa el ezt a cikket, hogy megtudja, hogyan dolgozhat okosabban – nem pedig keményebben.

Várjon – nem szoftver telepítésére való?

Az install parancsnak lehet a leginkább félrevezető neve a Linux-parancsok közül. Valójában nem telepít semmilyen szoftvert. Ha az Ubuntu vagy egy másik Debian-alapú disztribúció parancssorából próbál szoftvercsomagot telepíteni, használja az apt-get parancsot. Más Linux disztribúciók esetén használja inkább a Linux disztribúció csomagkezelő eszközét – például a dnf-et Fedorán vagy a zyppert az openSUSE-n.

Tehát mit csinál a telepítés?

Dióhéjban a telepítés egyesíti a cp (másolat), chown (gazdát váltani), chmod (módot váltani), mkdir (könyvtárat készíteni), és csík (csík szimbólumok) parancsokat. Lehetővé teszi az összes funkció használatát egyetlen műveletben.

Az install parancs a következőket teheti:

Másolja a fájlokat a cp parancshoz hasonlóan.
Válassza ki, hogy felülírja-e a meglévő fájlokat.
Ha nem létezik, hozza létre a célkönyvtárat, például az mkdir-t.
Állítsa be a fájlok felhasználói engedélyjelzőit, akárcsak a chmod parancsot.
Állítsa be a fájlok tulajdonosát, akárcsak a chown parancsot.
Távolítsa el a nem alapvető csomagokat a végrehajtható fájlokból, akárcsak a strip parancsot.

Mindezen funkciók ellenére az install parancsnak nincs ilyen funkciója sok lehetőség megküzdeni vele.

Mikor használnád

Az install parancs valószínűleg nem lesz minden nap használatban. Hasznos, de csak bizonyos helyzetekben. Az egyik forgatókönyv, ahol a telepítés magától értetődő, a szoftverfejlesztés. Tegyük fel, hogy egy új segédprogramot programoz. A tesztelést a fejlesztői környezeten kívül kell elvégeznie. Ehhez át kell másolnia az új programfájlokat egy tesztkönyvtárba. Előfordulhat, hogy létre kell hozni a tesztkönyvtárat, és be kell állítania a fájlok megfelelő engedélyeit és tulajdonjogát.

Mivel a fejlesztés egy iteratív tevékenység, a végén sokszor megteheti ezt a műveletsort. Az install parancs elvégzi helyetted az összes nehéz feladatot. Végül, amikor az új segédprogram készen áll a telepítésre, a telepítés segítségével átmásolhatja azt a megfelelő engedélyekkel a végső munkahelyére.

  Hogyan lehet megtekinteni a billentyűparancsok rejtett „csalólapját” az iPaden

Egy példa

Egy programozó éppen egy ilyen új segédprogramon, az ana-n dolgozik. Ez egy végrehajtható bináris fájlból és egy adatbázisból áll. A tesztelés után át kell másolni a /usr/local/bin könyvtárba, hogy a Linux rendszer összes felhasználója számára elérhető legyen. A példánkban szereplő fájlneveket és könyvtárútvonalakat be kell cserélnie a számítógépén használt fájlok és elérési utak helyére, amikor a telepítést használja.

Amíg nem áll készen a kiadásra, a ~/test/ana nevű könyvtárban lesz tesztelve. A geek csoport tagjai olvasási és végrehajtási jogosultságokkal rendelkeznek. Más felhasználóknak is lesz olvasási és végrehajtási jogosultsága. Az install parancs ugyanazt a numerikus megjelenítést használja az engedélyekhez, mint a chmod. Programozónk úgy döntött, hogy az engedélyeket a következőkre kell beállítani:

Tulajdonos: Olvass, írj és hajts végre.
Csoport: Olvassa el és hajtsa végre.
Egyéb: Csak végrehajtás.

A telepítési parancs használata

Kitalált programozónk munkakönyvtára a ~/work. Megírta a programot, lefordította, és előállított egy ana nevű binárist. Már létrehozta azt az adatbázisfájlt, amellyel az Ana dolgozik, a Words.db-t. Tehát mindkét fájl készen áll a tesztelésre. Vessünk egy pillantást rájuk:

ls -l ana Words.db

Az imént írt ana segédprogram anagrammákat hoz létre a parancssorban megadott kifejezésekből. Az ellenőrző tesztelés meglehetősen egyszerű.

Programozónk a „keksz” kifejezéssel anát hívta, és minden rendben van. Ezt a két fájlt most át akarja másolni a ~/test/ana könyvtárba, hogy megnézze, az új segédprogram megfelelően működik-e a fejlesztői környezettől távol. A következő parancsot adja ki:

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

A parancssorban használt opciók a következők voltak:

D: Ha szükséges, hozzon létre könyvtárakat, beleértve a szülőkönyvtárakat is.
v: Bőbeszédű, listázza ki az egyes könyvtárakat, ahogy azok létrejönnek, és minden fájlmásolatot végrehajtásuk közben.
t: Célkönyvtár.

Láthatjuk, hogy az install létrehozza a ~/test könyvtárat, majd létrehozza a ~/test/ana könyvtárat. A fájlok egyenként kerülnek listázásra, ahogy a célkönyvtárba másolódnak.

A fájlok listázása a ~/test/ana fájlban megerősíti, hogy helyesen másolták át őket.

ls -l

A következő lépés az ana segédprogram tesztelése a ~/test/ana könyvtárban található meghívással.

A segédprogram az elvárásoknak megfelelően működik, ami nagyszerű. Az engedélyek azonban nem megfelelőek. A követelmény az, hogy a csoportos geek tagjainak olvasási és végrehajtási jogosultságokkal kell rendelkezniük, a többi felhasználónak pedig csak a végrehajtási jogosultsága.

  Fájlok ábécé- vagy számsorrendben való lejátszása a VLC lejátszóban

Mindkét problémát egyszerűen megoldhatjuk a következő paranccsal. Vegye figyelembe a sudo használatát a parancs root jogosultságokkal történő futtatásához. Az -o és -g, valamint az opciók ezt követelik meg. A parancs kiadásakor meg kell adni a jelszavunkat.

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

A -b (backup) opció biztonsági másolatot készít a fájlokról, mielőtt felülírná őket.
Az -S (utótag) opció határozza meg a biztonsági mentési fájlok utótagját. Ha nem ad meg utótagot, a ~ (tilde) használatos. Azt kérjük, hogy az install használjon .bak utótagot.
A fájl tulajdonosát a -o (owner) kapcsolóval dave-re állítjuk.
A -g (csoport) opcióhoz egy csoport neve szükséges. Ez lesz a fájlok tulajdonosi csoportja. A csoportot, amelyet használni fogunk, geek-nek hívják.
A -m (mode) opció beállítja a fájlok fájlmódját a szabványos chmod numerikus szintaxis használatával.

Többé nem kell használnunk a -D (könyvtárak létrehozása) opciót, mert tudjuk, hogy a tesztkönyvtár már létezik. Kihagytuk a -v (bőbeszédű) opciót is. A ~/test/ana könyvtárunkban lévő fájlok felsorolása megmutatja a fájl részleteit:

ls -l

Ez megerősíti, hogy minden követelményünket teljesítettük.

A fájlok át lettek másolva a tesztelési könyvtárba.
Az engedélyek megfelelően vannak beállítva.
Dave a fájlok tulajdonosa.
A geek csoport a két fájl tulajdonosi csoportja.
Minden fájlról készült biztonsági másolat, ezek neve ana.bak és Words.db.bak.

Mindezt egyetlen parancs használatával sikerült elérni. Tiszta.

Programozónk néhány utolsó változtatást végez a segédprogramon, és újrafordítja. A megváltozott fájlokat át kell másolni a ~/test/ana könyvtárba a ~/work könyvtárból. Ezt a -C (összehasonlítás) opció használatával tehetjük meg. Ha a forrásfájl és a célfájl megegyezik, a forrásfájl nem kerül másolásra.

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

A fájlok listázása a célkönyvtárban azt mutatja, hogy az ana fájl fájlmérete megváltozott. Ez nagyobb, mint az ana.bakfile. Az ana időbélyege is megváltozott. Ezek a változtatások azért vannak, mert a fájl új verziója ide lett másolva.

ls -l

A Words.db fájl mérete és időbélyege nem változott. A Words.db fájlban nem történt módosítás, ezért nem másolták át. Egy sok fájlt tartalmazó projektben a -C (összehasonlítás) opcióval sok időt és merevlemez-lemorzsolódást takaríthat meg, ha csak a módosított fájlokat másolja.

  Helló

A programozó ismét tesztelte, hogy az ana segédprogram továbbra is működik-e.

Ideje telepíteni a fájlokat a /usr/local/bin könyvtárba. Ezzel az új segédprogram elérhető lesz a Linux számítógép összes felhasználója számára. Tudjuk, hogy a /usr/local/bin létezik, ezért nem kell létrehoznunk ezt a könyvtárat. Használhatjuk az utolsó parancsunk módosított változatát.

A célkönyvtárat a következőre változtattuk: /usr/local/bin. Eltávolítottuk a -C (összehasonlítás) opciót, mert ezeknek a fájloknak még nincsenek másolatai a célkönyvtárban, így nincs mihez hasonlítani. Ugyanígy nincs miről menteni, így eltávolíthatjuk a -b (backup) és az -S (utótag) opciót.

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

Felsorolhatjuk, hogy a fájlok a /usr/local/bin könyvtárba érkeztek:

ls -l

Utolsó tesztként változtassuk meg a könyvtárat a saját könyvtárunkra, és nézzük meg, hogy onnan meg tudjuk-e hívni az új segédprogramunkat.

Ne feledje, hogy az ana parancsot nem kellett a ./ előtaggal írnunk, ami azt jelenti, hogy a /usr/local/bin könyvtárból fut. Küldetés teljesítve.

Említettük, hogy a telepítés eltávolíthatja a redundáns szimbólumtáblázatokat és egyéb poggyászokat a bináris fájlból, hogy csökkentse a méretét. Tegyük meg most. Vegye figyelembe, hogy az alábbi parancs nem tartalmazza a Words.db-t. Ennek az az oka, hogy a Words.db egy adatbázisfájl, nem pedig egy bináris futtatható fájl. A bináris fájl másolásához és kicsinyítéséhez a következő parancsot használhatjuk. Hozzáadtuk a -s (zsugorítás) opciót kis „s” betűvel. Visszaadtuk a -b (backup) opciót és az -S (utótag) opciót, nagy „S” betűvel.

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

A fájlok listázása a /usr/local/bin könyvtárban lehetővé teszi számunkra, hogy összehasonlítsuk az ana fájl méretét a biztonsági másolattal. Az ana fájlt a korábbi méretének csaknem 60%-ára csökkentették.

ls -l /usr/local/bin

Összefoglalva

Az install parancs meglehetősen szűk körű felhasználást tesz lehetővé. Sokan nem használják nap mint nap, vagy esetleg hónapról hónapra. Ennek ellenére az install parancs jó eszköz ahhoz, hogy ismerje és a trükkök arzenáljában legyen. Azokban az esetekben, amikor szüksége van rá, megjutalmazza a tanulási görbéjét a hatékonyság, az egyszerűség és a kevesebb billentyűleütés növelésével.