GNU/Linux >> Znalost Linux >  >> Linux

Jak se install -c liší od cp

Jeden významný rozdíl je v tom, že cp zkrátí cílový soubor a začne kopírovat data ze zdroje do cílového souboru.

install na druhou stranu nejprve odstraní cílový soubor.

To je důležité, protože pokud je cílový soubor již používán, komukoli, kdo tento soubor používá, by se mohly stát špatné věci v případě cp nad ním nový soubor. např. přepsání spustitelného souboru, který běží, může selhat. Zkrácení datového souboru, do kterého je stávající proces zaneprázdněn čtením/zápisem, by mohlo způsobit docela podivné chování. Pokud nejprve odstraníte cílový soubor, jako to dělá instalace, věci pokračují jako obvykle – odstraněný soubor není ve skutečnosti odstraněn, dokud všechny procesy tento soubor neuzavře.


Technicky vzato je rozdíl mezi install -c a cp je to install nastaví oprávnění cílového souboru na rwxr-xr-x . cp zachovává oprávnění zdrojového souboru minus umask. Tato výchozí chování jsou užitečná v různých situacích. Samozřejmě se všemi možnostmi, které jsou cp a install v dnešní nabídce se funkce sblížily.

V současné době install se běžně používá v makefiles, cp všude jinde. Toto rozlišení je občas užitečné, protože některé operační systémy nebo instalační systémy vám umožňují připojit se k install program pro registraci nainstalovaných balíčků. Díky moderním systémům pro správu balíčků je tento druh zastaralý, ale někteří lidé jej stále používají. Velmi pohodlná je také možnost současně nastavit oprávnění k cílovému souboru.


install utilita je ve své podstatě luxusní cp . Ale jako nástroj speciálně pro instalaci obsahuje několik funkcí, které cp ne. Můj /usr/bin/install z GNU coreutils nejen kopíruje, ale může také měnit oprávnění/vlastnictví jako arg flags (úspora chgrp , chown , chmod invocations) možnost odstranit informace o ladění (úspora strip). vyvolání) a také nějaké mojo pro kontexty SELinux.

Poskytuje pouze pohodlné akce užitečné pro instalaci softwaru. Žádný nemění život, všechny jsou užitečné a vaše skripty jsou čistší.


Linux
  1. Jak nainstalovat Ubuntu ze souboru Iso?

  2. Jak nainstalovat g ++ na Ubuntu

  3. jak se liší cp -f od cp --remove-destination?

  1. Jak nainstalovat Fail2Ban na CentOS 7

  2. Jak vykopat soubor z Awk?

  3. Awk z různých řádků?

  1. Telnet vs. SSH:Jak se SSH liší od Telnetu?

  2. Jak nainstalovat phpMyAdmin na CentOS 8

  3. Jak číst proměnnou ze souboru?