{"id":7330,"date":"2021-06-07T17:31:29","date_gmt":"2021-06-07T17:31:29","guid":{"rendered":"https:\/\/profi-tutorials.de\/linux\/?p=7330"},"modified":"2021-07-09T14:33:20","modified_gmt":"2021-07-09T14:33:20","slug":"befehl-cpio","status":"publish","type":"post","link":"https:\/\/profi-tutorials.de\/linux\/grundlagen\/befehl-cpio\/","title":{"rendered":"Der Befehl cpio"},"content":{"rendered":"<p>In diesem Beitrag lernen Sie den Befehl cpio f&uuml;r Linux- bzw. UNIX-Betriebssysteme kennen. Der Befehl erlaubt Ihnen das Kopieren von Dateien zwischen Archiven und Verzeichnissen, wobei viele verschiedene Archivformate unterst&uuml;tzt werden: Altes bin&auml;res cpio, altes portables cpio, SVR4 cpio mit und ohne Pr&uuml;fsumme, HP cpio und verschiedene tar-Formate.<\/p>\n<p>Der Befehl unterst&uuml;tzt drei verschiedene Modi: create (copy-out), extract (copy-in) und pass-through (copy-pass). Im Folgenden wird zun&auml;chst die allgemeine <a class=\"glossaryLink cmtt_Allgemein cmtt_Informatik\" aria-describedby=\"tt\" data-cmtooltip=\"&lt;div class=glossaryItemTitle&gt;Syntax&lt;\/div&gt;&lt;div class=glossaryItemBody&gt;&#8203;Im  Allgemeinen wird unter Syntax ein Regel&#8203;system verstanden, welches zur  Kombination elementarer Zeichen zu zusammengesetzten &#8203;Zeichen in (...)&lt;\/div&gt;\" href=\"https:\/\/profi-tutorials.de\/linux\/glossar\/syntax\/\" target=\"_blank\" data-mobile-support=\"0\" data-gt-translate-attributes='[{\"attribute\":\"data-cmtooltip\", \"format\":\"html\"}]' tabindex=\"0\" role=\"link\">Syntax<\/a> und anschlie&szlig;end die grundlegende Anwendung der verschiedenen Modi vorgestellt. Einige Beispiele f&uuml;hren zudem die Anwendung des Befehls vor.<\/p>\n<p>Weitere Informationen zur Archivierung von Dateien finden Sie auch in <a href=\"https:\/\/profi-tutorials.de\/linux\/grundlagen\/archivierung-tar\/\" target=\"_blank\" rel=\"noopener\">unserem Beitrag zum Befehl tar<\/a>.<\/p>\n<h2 id=\"t-1622204137325\">Allgemeine Syntax<\/h2>\n<p>Die allgemeine Syntax von <strong>cpio <\/strong>lautet folgenderma&szlig;en:<\/p>\n<pre>cpio [--create|--extract|--pass-through] [Optionen<\/pre>\n<h2 id=\"t-1622204137326\">cpio-Modi<\/h2>\n<p>Im Folgenden werden die verschiedenen <strong>Modi<\/strong>, welche f&uuml;r die Verwendung mit <strong>cpio <\/strong>verf&uuml;gbar sind, vorgestellt.<\/p>\n<h3 id=\"t-1622204137327\">Create-Modus<\/h3>\n<p>Der <strong>Create-modus<\/strong>, welcher mit der <strong>Option &ndash;create<\/strong> oder <strong>-o<\/strong> aufgerufen wird, wird zum <strong>Erzeugen von Archiven<\/strong> mit bestimmten Dateien verwendet. Eine Liste von Dateinamen wird vom Standard-Input <strong>stdin <\/strong>gelesen und das erzeugte Archiv anschlie&szlig;end am Standard-Output <strong>stdout <\/strong>ausgeben.<\/p>\n<h5>Beispiel: Dateien archivieren<\/h5>\n<h6><span style=\"font-weight: normal\">In diesem Beispiel sollen die im aktuellen Arbeitsverzeichnis befindlichen Dateien archiviert werden. Mit dem Befehl <\/span>ls<span style=\"font-weight: normal\"> werden die Dateien dazu an den Standard-Input von <\/span>cpio &ndash;create <span style=\"font-weight: normal\">&uuml;bergeben. Die Ausgabe wird in eine Archiv-Datei <\/span>hedv-archiv.cpio<span style=\"font-weight: normal\"> unter <\/span>\/home\/hellberg\/archive\/<span style=\"font-weight: normal\"> geschrieben. Beachten Sie bitte, dass Sie die Ausgabe bei diesem Vorgehen nicht direkt in das Arbeitsverzeichnis schreiben k&ouml;nnen.<\/span><\/h6>\n<h6>Ausgabe von ls im Arbeitsverzeichnis:<\/h6>\n<p>befehl-find.txt befehl-grep.txt linux-berechtigungssystem.txt<\/p>\n<h6>Eingabe:<\/h6>\n<p>ls | cpio &ndash;create &gt; \/home\/hellberg\/archive\/hedv-archiv.cpio<\/p>\n<h6>Inhalt von \/home\/hellberg\/archive\/ (nach Ausf&uuml;hrung):<\/h6>\n<p>hedv-archiv.cpio<\/p>\n<h5>Beispiel: Verzeichnis archivieren<\/h5>\n<h6><span style=\"font-weight: normal\">In diesem Beispiel sollen ein komplettes Verzeichnis <\/span>\/administration\/<span style=\"font-weight: normal\"> aus dem aktuellen Arbeitsverzeichnis archiviert werden &ndash; dabei wird der Befehl <\/span>find <span style=\"font-weight: normal\">eingesetzt. Die Ausgabe wird in eine Datei <\/span>hedv-verzeichnis.cpio<span style=\"font-weight: normal\"> im Arbeitsverzeichnis geschrieben.<\/span><\/h6>\n<h6>Ausgabe von ls im Arbeitsverzeichnis:<\/h6>\n<p>administration distribution grundlagen installation netzwerke sicherheit<\/p>\n<h6>Eingabe:<\/h6>\n<p>find .\/administration | cpio &ndash;create &gt; hedv-verzeichnis.cpio<\/p>\n<h6>Ausgabe von ls im Arbeitsverzeichnis (nach Ausf&uuml;hrung):<\/h6>\n<p>administration distribution grundlagen <strong>hedv-verzeichnis.cpio<\/strong> installation netzwerke sicherheit<\/p>\n<h3 id=\"t-1622204137328\">Extract-Modus<\/h3>\n<p>Mit dem <strong>Extract-Modus<\/strong>, welcher mit <strong>&ndash;extract<\/strong> bzw.<strong> -i <\/strong>aufgerufen wird, k&ouml;nnen Archive vom Standard-Input <strong>stdin <\/strong>eingelesen und Dateien aus diesen <strong>extrahiert <\/strong>werden. Das Einlesen eines Archivs kann alternativ auch mithilfe der <strong>Option &ndash;file<\/strong> erfolgen. Wird die <strong>Option -t<\/strong> verwendet, so werden keine Dateien extrahiert, sondern stattdessen eine Liste der Inhalte des Archivs auf dem Standard-Output <strong>stdout <\/strong>ausgegeben. Wird letztere Option alleine verwendet, so impliziert sie den Extract-Modus &ndash; also die <strong>Option &ndash;extract<\/strong>.<\/p>\n<p>Durch <strong>Verwendung von Mustern<\/strong> ist es m&ouml;glich, nur solche Dateien zu extrahieren, deren Dateinamen diesem entsprechen.<\/p>\n<h5>Beispiel: Alle Dateien extrahieren<\/h5>\n<h6><span style=\"font-weight: normal\">In diesem Beispiel sollen die Dateien aus dem unter &ldquo;<\/span>Beispiel: Dateien archivieren<span style=\"font-weight: normal\">&rdquo; erstellten Archiv alle in das Arbeitsverzeichnis extrahiert werden.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p>cpio &ndash;extract &lt; \/home\/hellberg\/archive\/hedv-archiv.cpio<\/p>\n<h6>Ausgabe von ls im Arbeitsverzeichnis (nach Ausf&uuml;hrung):<\/h6>\n<p>befehl-find.txt befehl-grep.txt linux-berechtigungssystem.txt<\/p>\n<h5>Beispiel: Dateien nach Muster extrahieren<\/h5>\n<h6><span style=\"font-weight: normal\">Nun sollen nur solche Dateien deren Namen mit &ldquo;<\/span>befehl<span style=\"font-weight: normal\">&rdquo; beginnt aus dem unter &ldquo;<\/span>Beispiel: Dateien archivieren<span style=\"font-weight: normal\">&rdquo; erstellten Archiv in das Arbeitsverzeichnis extrahiert werden. Der <\/span>Stern <span style=\"font-weight: normal\">&ldquo;<\/span>*<span style=\"font-weight: normal\">&rdquo; im Muster steht dabei f&uuml;r eine beliebige Zeichenkette.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p>cpio &ndash;extract &ldquo;befehl*&rdquo; &lt; \/home\/hellberg\/archive\/hedv-archiv.cpio<\/p>\n<h6>Ausgabe von ls im Arbeitsverzeichnis (nach Ausf&uuml;hrung):<\/h6>\n<p>befehl-find.txt befehl-grep.txt<\/p>\n<h3 id=\"t-1622204137329\">Pass-Through-Modus<\/h3>\n<p>Der<strong> Pass-Through-Modus<\/strong> kann schlie&szlig;lich verwendet werden, um Dateien vom Standard-Input <strong>stdin <\/strong>einzulesen und diese in das angegebene Verzeichnis zu <strong>kopieren<\/strong>.<\/p>\n<h5>Beispiel: Dateien zwischen Verzeichnissen kopieren<\/h5>\n<h6><span style=\"font-weight: normal\">Schlie&szlig;lich sollen hier auch einmal einige Dateien aus dem aktuellen Arbeitsverzeichnis in ein anderes leeres Verzeichnis <\/span>\/home\/hellberg\/copy\/<span style=\"font-weight: normal\"> kopiert werden.<\/span><\/h6>\n<h6>Ausgabe von ls &ndash; l im Quellverzeichnis \/Arbeitsverzeichnis):<\/h6>\n<p>befehl-scp.txt netzwerkbefehle-anfaenger.txt<\/p>\n<h6>Eingabe:<\/h6>\n<p>find . | cpio &ndash;pass-through \/home\/hellberg\/copy\/<\/p>\n<h6>Ausgabe von ls -l \/home\/hellberg\/copy\/ (nach Ausf&uuml;hrung):<\/h6>\n<p>befehl-scp.txt netzwerkbefehle-anfaenger.txt<\/p>\n<h2 id=\"t-1622204137330\">Wichtige Optionen<\/h2>\n<h3 id=\"t-1623076162589\">-0 &ndash; Nullzeichen verwenden<\/h3>\n<p>Durch Verwendung von <strong>-0<\/strong> bzw. <strong>&ndash;null<\/strong> wird die eingelesene Liste von Dateinamen durch ein Nullzeichen, anstelle von einem Zeilenumbruch terminiert, sodass auch Dateien deren Namen einen Zeilenumbruch enthalten archiviert werden k&ouml;nnen. Diese Option kann mit <strong>allen Modi<\/strong> verwendet werden.<\/p>\n<h3 id=\"t-1623076162590\">-a &ndash; Zugriffszeit zur&uuml;cksetzen<\/h3>\n<p>Die <strong>Option -a<\/strong> setzt die Zugriffszeit von Dateien nach dem Lesen wieder auf ihren urspr&uuml;nglichen Stand zur&uuml;ck.<\/p>\n<h3 id=\"t-1623076162591\">-A &ndash; Bestehendes Archiv erg&auml;nzen<\/h3>\n<p>Mit der <strong>Option -A<\/strong> k&ouml;nnen Dateien einem bestehenden Archiv hinzuf&uuml;gt werden. Die Archivdatei muss entweder mit der<strong> -o <\/strong>oder der <strong>-F Option<\/strong> spezifiziert werden. Die Option funktioniert lediglich im <strong>Create-Modus<\/strong>.<\/p>\n<h3 id=\"t-1623076162592\">-d &ndash; F&uuml;hrende Verzeichnisse erstellen<\/h3>\n<p>Wird die <strong>Option -d<\/strong> verwendet, so erstellt <strong>cpio <\/strong>bei Bedarf f&uuml;hrende Verzeichnisse der angegebenen Pfade, falls diese nicht bereits existieren. Die Option kann lediglich mit dem <strong>Extract-<\/strong> und <strong>Pass-Through-Mode<\/strong> verwendet werden.<\/p>\n<h3 id=\"t-1623076162593\">-D &ndash; Verzeichnis wechseln<\/h3>\n<p>Mit <strong>-D<\/strong> wird vor der Durchf&uuml;hrung jeglicher Operation in das angegebene Verzeichnis gewechselt. Die Option kann mit <strong>allen Modi<\/strong> verwendet werden.<\/p>\n<h3 id=\"t-1623076162594\">-f &ndash; Muster negieren<\/h3>\n<p>Die Option wird mit dem <strong>Extract-Modus<\/strong> verwendet und f&uuml;hrt dazu, dass nur solche Dateien extrahiert werden, die nicht mit dem angegebenen Muster &uuml;bereinstimmen.<\/p>\n<h3 id=\"t-1623076162595\">-F &ndash; Archiv spezifizieren<\/h3>\n<p>Mithilfe von <strong>-F<\/strong> kann ein Archiv spezifiziert werden, welches anstelle des Standard-Input bzw. Standard-Output verwendet werden soll. Die Option kann mit dem <strong>Create-<\/strong> und <strong>Extract-Modus<\/strong> verwendet werden.<\/p>\n<h3 id=\"t-1623076162596\">-m &ndash; Zeitstempel erhalten<\/h3>\n<p>Durch den Einsatz von <strong>-m <\/strong>werden die Zeitstempel bei dem Kopieren von Dateien erhalten. Wird mit dem <strong>Extract-<\/strong> und <strong>Pass-Through-Modus<\/strong> verwendet.<\/p>\n<h3 id=\"t-1623076162597\">&ndash;no-preserve-owners &ndash; Besitzer erhalten<\/h3>\n<p>Mit der <strong>Option &ndash;no-preserve-owners<\/strong> wird der Besitzer der extrahierten Dateien nicht ver&auml;ndert, sondern bei dem Benutzer belassen, welcher sie extrahiert. Die Option ist Standard bei nicht-Root-Benutzern und kann sowohl im <strong>Extract-<\/strong> als auch im <strong>Pass-Through-Modus<\/strong> verwendet werden.<\/p>\n<h3 id=\"t-1623076162598\">-O &ndash; Ausgabearchiv spezifizieren<\/h3>\n<p>Die <strong>Option -O<\/strong> erm&ouml;glicht es, ein Archiv zu spezifizieren, welches anstelle des Standard-Output <strong>stdout <\/strong>bei dem <strong>Create-Modus<\/strong> eingesetzt wird.<\/p>\n<h3 id=\"t-1623076162599\">-r &ndash; Dateien umbenennen<\/h3>\n<p>Mit <strong>-r<\/strong> k&ouml;nnen Dateien beim Extrahieren interaktiv umbenannt werden.<\/p>\n<h3 id=\"t-1623076162600\">-R &ndash; Besitzer spezifizieren<\/h3>\n<p>Die <strong>Option -R<\/strong> kann ausschlie&szlig;lich vom <strong>Superuser <\/strong>verwendet werden und erm&ouml;glicht es, den Besitzer aller erstellten Dateien auf den spezifizierten Benutzer zu setzen. Im <strong>Create-Modus<\/strong> werden die gegebenen Besitzer-Informationen im Archiv gespeichert.<\/p>\n<p>&Uuml;bergeben werden kann entweder <strong>nur ein Benutzername<\/strong> oder ein <strong>Benutzer- und Gruppenname<\/strong> &ndash; separiert durch einen <strong>Doppelpunkt &ldquo;:&rdquo;<\/strong> &ndash; oder aber <strong>nur ein Gruppenname<\/strong>, welcher dann von einem <strong>Doppelpunkt angef&uuml;hrt<\/strong> wird.<\/p>\n<pre>cpio -R hellberg<\/pre>\n<pre>cpio -R bibo:hedv<\/pre>\n<pre>cpio -R :hedv<\/pre>\n<p>Die Argumente werden zun&auml;chst in den jeweiligen Systemtabellen gesucht. Wird ein Teil nicht gefunden, so wird dieser als numerische UID oder GID behandelt, sofern er ausschlie&szlig;lich aus Dezimalziffern besteht. Um eine Suche in den Systemtabellen zu verhindern und die Behandlung als UID bzw. GID zu <strong>erzwingen<\/strong>, wird jeweils ein <strong>Pluszeichen <\/strong><strong>&ldquo;+&rdquo;<\/strong> als <strong>Prefix <\/strong>hinzugef&uuml;gt.<\/p>\n<pre>cpio -R +1000<\/pre>\n<pre>cpio -R +1001:+1001<\/pre>\n<pre>cpio -R :+1002<\/pre>\n<p>Wird schlie&szlig;lich ein <strong>Doppelpunkt &ldquo;:&rdquo;<\/strong> angegeben, welcher jedoch nicht von einem <strong>Gruppennamen <\/strong>oder einer <strong>GID <\/strong>gefolgt wird, so verwendet <strong>cpio <\/strong>die <strong>Login-Gruppe<\/strong> des gegebenen Benutzers.<\/p>\n<pre>cpio -R hellberg:<\/pre>\n<h3 id=\"t-1623076162601\">-t &ndash; Inhalte ausgeben<\/h3>\n<p>Die <strong>Option -t<\/strong> kann im <strong>Extract-Modus<\/strong> verwendet werden, um eine Tabelle mit den Inhalten eines Archivs auszugeben. Die Verwendung ohne zus&auml;tzlichen Modus ist m&ouml;glich, da hierbei stets<strong> -i <\/strong>(Extract) impliziert wird.<\/p>\n<h3 id=\"t-1623076162602\">&ndash;to-stdout &ndash; Standard-Output<\/h3>\n<p>Die Ausgabe in den Standard-Output kann beim Extrahieren mit der <strong>Option &ndash;to-stdout<\/strong> erreicht werden.<\/p>\n<h3 id=\"t-1623076162603\">-u &ndash; Dateien ersetzen<\/h3>\n<p>Wird die <strong>Option -u<\/strong> verwendet, so ersetzen die Modi <strong>Extract <\/strong>und <strong>Pass-Through<\/strong> bereits existierende neuere Dateien ohne R&uuml;ckfrage auch durch &auml;ltere Dateien.<\/p>\n<h3 id=\"t-1623076162604\">-v &ndash; Ausf&uuml;hrliche Ausgabe<\/h3>\n<p>Schlie&szlig;lich kann mit <strong>-v<\/strong> eine ausf&uuml;hrliche Ausgabe der verarbeiteten Dateien erreicht werden. Durch Zusatz der <strong>Option -t<\/strong> wird zudem eine Ausgabe der Inhalte erzeugt, &auml;hnlich wie sie bei dem Befehl<strong> &ldquo;ls -l&rdquo;<\/strong> ausgeben wird.<\/p>\n<p style=\"text-align: center\">Abonniere JETZT unseren Newsletter!<\/p>\n<p style=\"text-align: center\">Verpasse nie wieder <strong>neue<\/strong> Beitr&auml;ge und <strong>exklusive Insider-Only-Inhalte!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Beitrag lernen Sie den Befehl cpio f\u00fcr Linux- bzw. UNIX-Betriebssysteme kennen. Der Befehl erlaubt Ihnen das Kopieren von Dateien zwischen Archiven und Verzeichnissen, wobei viele verschiedene Archivformate unterst\u00fctzt werden: Altes bin\u00e4res cpio, altes portables cpio, SVR4 cpio mit und ohne Pr\u00fcfsumme, HP cpio und verschiedene tar-Formate. Der Befehl unterst\u00fctzt drei verschiedene Modi: create [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":7875,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"%%post_title%% %%sep%% %%sitetitle%%","_seopress_titles_desc":"In diesem Beitrag lernen Sie den Befehl cpio kennen, welcher unter UNIX- \/ Linux dazu verwendet wird, um Dateien zwischen Archiven und Verzeichnissen zu kopieren.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"7","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"UNIX,Linux,Befehl,Befehle,Option,Optionen,Betriebssystem,Betriebssysteme,Betriebssystemen,Syntax,Beispiel,Beispiele,Tutorial,Tutorials,Profi-Tutorials,Profi-Tutorials.de,cpio,Archiv,Archive,kopieren,Kopie,Datei,Dateien","footnotes":""},"categories":[8,7],"tags":[],"class_list":["post-7330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administration","category-grundlagen"],"_links":{"self":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/7330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/comments?post=7330"}],"version-history":[{"count":27,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/7330\/revisions"}],"predecessor-version":[{"id":7427,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/7330\/revisions\/7427"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media\/7875"}],"wp:attachment":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media?parent=7330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/categories?post=7330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/tags?post=7330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}