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.