Tar cf kann keine Dateien mit einem Doppelpunkt im Namen archivieren

0

Ich arbeite derzeit an einer Aufgabe zur Archivierung einer alten Webanwendung. Ich habe die Datenbank und die Anwendung selbst gesichert und versuche nun, den Dateispeicher zu sichern, der alle hochgeladenen Dateien enthält.

Leider hat die genannte Anwendung die hochgeladenen Dateien nicht immer korrekt behandelt, was dazu geführt hat, dass viele Dateien den vollständigen Pfadnamen auf dem Client enthalten, der sie hochgeladen hat, beispielsweise "C: \ test \ test.doc".

Ich möchte ein tar-Archiv erstellen, das alle Dateien enthält, aber tar cf gibt Fehler für Dateien aus, deren Name einen Doppelpunkt enthält. Ich habe versucht zu fliehen, aber kein Glück.

Ein Beispiel:

-rw-r--r-- 1 root root 29696 Jan  3 09:43 C:\test\test.doc

Einfach alles tarieren:

[root@server test]# tar cf test.tar *
tar: C\:\test\test.doc: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors

Umgeben von doppelten Anführungszeichen:

[root@server test]# tar cf test.tar "C:\\test\\test.doc"
tar: C\:\test\test.doc: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors

Verwenden des Fluchtzeichens:

[root@server test]# tar cf test.tar C\:\\test\\test.doc
tar: C\:\test\test.doc: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors

Gibt es eine Möglichkeit, dies zu erreichen (ohne Datei umzubenennen)?

verhage
quelle
1
Haben Sie das erste Match auf Google für die Suche nach "tar escape colon" ausprobiert?
Zumo de Vidrio
Ja, beim ersten Treffer geht es darum, eine tar-Datei mit einem Doppelpunkt im Namen zu extrahieren;)
verhage

Antworten:

3

Benutzen . um das gesamte Verzeichnis anstatt zu archivieren *

tar cf ../test.tar .
Ipor Sircer
quelle
1

Das Folgende funktioniert auch (Escape the \ in einfachen Anführungszeichen):

$ touch 'C:\test\test.doc'
$ ls
C:\test\test.doc
$ tar cf test.tar 'C:\\test\\test.doc' 
$ tar tf test.tar 
C:\\test\\test.doc
dirkt
quelle