GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie schließe ich absolute Pfade für tar aus?

Für mich funktioniert Folgendes am besten:

tar xvf some.tar --transform 's?.*/??g'

--transform argument ist ein Ersatz-Regex für sed, dem jeder extrahierte Dateipfad zugeführt wird. Im Gegensatz zu --strip-components , werden alle Pfadinformationen entfernt, nicht nur eine feste Anzahl von Komponenten.


Wenn Sie die ersten n führenden Bestandteile des Dateinamens entfernen möchten, benötigen Sie strip-components . In Ihrem Fall tun Sie dies also beim Extrahieren

tar xvf tarname.tar --strip-components=2

Die Manpage enthält eine Liste von tar 's viele Optionen, einschließlich dieser. Einige frühere Versionen von tar Verwenden Sie --strip-path stattdessen für diesen Vorgang.


Sie verwenden fälschlicherweise den -C Schalter, der zum Wechseln von Verzeichnissen verwendet wird. Was Sie also tun müssen, ist:

tar -cf tarname.tar -C /www/path path/file1.txt path2/path3/file2.xls

oder wenn Sie alles unter /www/path packen möchten tun:

tar -cf tarname.tar -C /www/path .

Sie können -C verwenden mehrfach wechseln.


Linux
  1. [Linux] :So schließen Sie das Verzeichnis aus, wenn Sie den Shell-Befehl „tar“ verwenden

  2. So schließen Sie ein bestimmtes Repository für das Yum-Update in CentOS / Red Hat aus

  3. So schließen Sie ein Verzeichnis in find aus. Befehl

  4. So extrahieren Sie die Datei filename.tar.gz

  5. Tarieren Sie ein Verzeichnis, aber speichern Sie keine vollständigen absoluten Pfade im Archiv

So extrahieren (entpacken) Sie die Tar Gz-Datei

So extrahieren (entpacken) Sie die tar.xz-Datei

So erstellen Sie eine Tar-Gz-Datei

Wie entferne ich Leerzeichen in Pfaden für Scp in Linux?

So erstellen Sie eine Tar gz-Datei

10 Beispiele zum Ausschließen von Yum zum Überspringen von Paketen für das Linux-Yum-Update (So schließen Sie Kernel-Updates von Yum aus)