Ich möchte meine Verzeichnisstruktur mit Ausnahme der Dateien kopieren. Gibt es im Tar eine Option, alle Dateien zu ignorieren und nur die Verzeichnisse rekursiv zu kopieren?Tar nur die Verzeichnisstruktur
Antwort
for i in `find . -type d`; do mkdir -p /tmp/tar_root/`echo $i|sed 's/\.\///'`; done
pushd /tmp/tar_root
tar cf tarfile.tar *
popd
# rm -fr /tmp/tar_root
können Sie verwenden, finden Sie die Verzeichnisse zu erhalten und sie dann Teer:
find .. -type d -print0 | xargs -0 tar cf dirstructure.tar --no-recursion
Wenn Sie mehr als etwa 10000 Verzeichnisse verwenden Sie die folgenden, um zu arbeiten xargs Grenzen:
find . -type d -print0 | tar cf dirstructure.tar --null --files-from - --no-recursion
gehen Sie in den Ordner, in dem Sie beginnen möchten (deshalb verwenden wir find dot) speichern tar-Datei woanders. Ich glaube, ich habe einen Fehler gemacht, als ich es genau dort gelassen habe. Teer mit r nicht c. Ich denke mit cf erstellen Sie neue Dateien und Sie erhalten nur den letzten Satz von Dateiunterverzeichnissen. Teer wird an die TAR-Datei angehängt. --no-recursion, weil die Suche Ihnen Ihre ganze Liste von Dateien bereits gibt, so dass Sie nicht recurse wollen.
finden. -type d | xargs tar rf /irgendwoelse /wasimmer-dirsonly.tar --no-recursion
tar tvf /irgendwoinsel/wasimmer-dirsonly.tar | mehr, um zu überprüfen, was Sie haben.
Verzeichnisnamen, die Leerzeichen oder andere Sonderzeichen enthalten, erfordern möglicherweise zusätzliche Aufmerksamkeit. Zum Beispiel:
$ mkdir -p "backup/My Documents/stuff"
$ find backup/ -type d | xargs tar cf directory-structure.tar --no-recursion
tar: backup/My: Cannot stat: No such file or directory
tar: Documents: Cannot stat: No such file or directory
tar: backup/My: Cannot stat: No such file or directory
tar: Documents/stuff: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Hier sind einige Variationen, diese Fälle von „ungewöhnlich“ Verzeichnisnamen zu handhaben:
$ find backup/ -type d -print0 | xargs -0 tar cf directory-structure.tar --no-recursion
-print0 mit FIND werden Dateinamen als nullterminierten Strings emittieren; mit -0 xargs interpretiert Argumente auf die gleiche Weise. Wenn Sie null als Terminator verwenden, stellen Sie sicher, dass auch Dateinamen mit Leerzeichen und Zeilenumbrüchen korrekt interpretiert werden.
Es ist auch möglich, Rohr Ergebnisse direkt aus find
zu tar
:
$ find backup/ -type d | tar cf directory-structure.tar -T - --no-recursion
tar Aufrufen mit -T - (oder --files-von -) wird es dazu führen, Dateinamen von stdin zu lesen , erwartet, dass jeder Dateiname durch einen Zeilenumbruch getrennt wird.
Für eine maximale Wirkung kann dies mit Optionen für nullterminierten Strings kombiniert werden:
$ find . -type d -print0 | tar cf directory-structure.tar --null --files-from - --no-recursion
Davon ich diese letzte Version betrachte die robusteste zu sein, weil es sowohl ungewöhnliche Dateinamen unterstützt und (im Gegensatz zu xargs) ist nicht inhärent durch Systembefehlszeilengrößen beschränkt. (siehe xargs --show-limits
)
- 1. Datenstruktur für die Verzeichnisstruktur verwendet?
- 2. tar/gzip ohne bestimmte Dateien
- 3. Django Verzeichnisstruktur?
- 4. nur Dateien löscht mit S3 DeleteObject halte Verzeichnisstruktur intakt
- 5. Hilft tar Kompression?
- 6. Die Ordner-/Verzeichnisstruktur des Webprojekts - Best Practices
- 7. RequireJs minifcation - komplexe Verzeichnisstruktur
- 8. Python TDD Verzeichnisstruktur
- 9. Autotools - tar Dies sieht nicht wie ein tar-Archiv aus
- 10. Was ist der Unterschied zwischen tar zxvf und tar -zxvf?
- 11. Abgeschnittener tar-Archivfehler
- 12. Wie entpacke ich eine TAR-Datei, die das tar-Programm enthält?
- 13. wie man Dateien umbenennt, die man in ein Tar-Archiv unter Linux 'tar' einfügt
- 14. Java Schnittstellen Verzeichnisstruktur?
- 15. PHP Verzeichnisstruktur Verwirrung
- 16. java.util.zip - Verzeichnisstruktur neu erstellen
- 17. Maven build - Verzeichnisstruktur
- 18. Verzeichnisstruktur in einem QTreeWidget
- 19. reorganisieren Verzeichnisstruktur mit Mercurial
- 20. Flache Verzeichnisstruktur für Multimodule?
- 21. Verzeichnisstruktur von Octopress
- 22. Datei in Verzeichnisstruktur suchen
- 23. Verzeichnisstruktur mit Linq?
- 24. Unit Testing Verzeichnisstruktur
- 25. Verzeichnisstruktur in Aurelia
- 26. Vollständige Verzeichnisstruktur mit pep8 durchsuchen
- 27. Ändern der Verzeichnisstruktur in Subversion
- 28. SBT Verzeichnisstruktur. Was ist "Projekt"?
- 29. Fehler mit scalatest, sbt Verzeichnisstruktur
- 30. Verzeichnisstruktur für eine C++ - Bibliothek
brauchen Sie ein 10-Sekunden-Auto? :) – mschr