Ich möchte einen Befehl für alle Dateien auf allen Ebenen im Verzeichnis ausführen. Es kann eine beliebige Anzahl von Dateien und Unterverzeichnissen enthalten. Auch diese Unterverzeichnisse können beliebig viele Dateien und Unterverzeichnisse enthalten. Ich möchte dies mit Shell-Skript tun. Da ich neu in diesem Bereich bin, kann mir jeder einen Ausweg vorschlagen.Schleife durch ein Verzeichnis mit beliebiger Tiefe
Antwort
können Sie einen rekursiven Befehl verwenden, die Wildcard-Zeichen verwendet werden (*) wie folgt:
for dir in ~/dev/myproject/*; do (cd "$dir" && git status); done
Wenn Sie Befehle auf die einzelnen Dateien anwenden möchten, sollten Sie den Befehl Suchen verwenden und Ausführen von Befehlen auf es wie so :
find yourdirectory -type f -exec echo "File found: '{}'" \;
Was das bedeutet:
- findet alle Einträge in dem Verzeichnis yourdirectory
- , die die Typ f haben - so sind eine Datei
- betreibt ein exec auf jede Datei
Sie den Befehl "find" mit "xargs" nach „verwenden | "(Rohr).
Beispiel: Nehmen wir an, dass ich alle Dateien entfernen möchten, die „.txt“ Erweiterung auf ‚Dateien‘ haben:
find Documents -iname *.txt |xargs rm -f
hilft?
Verwendung finden:
-type f -exec COMMAND finden {} \;
-f wendet den Befehl nur auf Dateien an, nicht auf Verzeichnisse. Der Befehl ist standardmäßig rekursiv.
Beachten Sie, dass 'find -exec' wirklich langsam ist. 'finden | xargs' ist bei großen Dateimengen viel schneller. Und es kann auch parallel sein. –
- 1. Warum reduziert Array.prototype.join() ein Array mit beliebiger Tiefe?
- 2. Iterieren durch ein Array beliebiger Dimension
- 3. Schleife durch alle Dateien im Verzeichnis Bash
- 4. Iterieren durch ein Verzeichnis mit Ant
- 5. Schleife durch ein NSMutableDictionary
- 6. Schleife durch ein XML mit PHP
- 7. Schleife durch ein Array mit $ .getJSON
- 8. Schleife durch ein Objekt Felder
- 9. Schleife durch ein Array php
- 10. C# Schleife durch ein Array
- 11. Richtig Schleife durch JSON mit jQuery
- 12. Schleife durch mit Anweisung
- 13. ein Objekt durch tiefe Verschachtelung in Schienen veröffentlichen
- 14. Wie Sie Schlüssel in einem Python-Wörterbuch von Wörterbüchern mit beliebiger Tiefe umbenennen
- 15. Iterierte durch Verzeichnis mit Assets.getText
- 16. Wie man Verzeichnis innerhalb des Verzeichnisses durch php Schleife herstellt?
- 17. Json.NET durch Tiefe Serialisierung und Attribut
- 18. Anzeige/Visualisierung von JSON mit beliebiger Tiefe in einem Angular2 HTML Template
- 19. Führt Enumerable.Repeat() eine tiefe Kopie durch?
- 20. JavaScript - Filter durch ein Array mit Argumenten mit for-Schleife
- 21. Tiefe/Perspektive mit CoreImage?
- 22. Schleife durch Hosts mit ansible
- 23. UnmarshalJSON ein beliebiger Typ von [] Schnittstelle {} möglich?
- 24. Lodash Schleife durch ein Array von Arrays
- 25. Schleife durch ein Array in C++
- 26. Schleife durch ein Array von Objekten?
- 27. R: tiefe Kopie ein Funktionsargument
- 28. Schleife durch Verzeichnis von Bildern und rotiere sie alle x Grad und speichern in Verzeichnis
- 29. Schleife durch Sammlung mit Unterstrich
- 30. Schleife durch ein JSON-Objekt in Java
Was ist, wenn ich den Dateinamen in dem Befehl übergeben möchte ich auf allen Dateien ausführen möchte –
Ich glaube, dass ich Ihnen die Antwort bereits gab! Xargs wird jeden gewünschten Befehl anwenden. Mit der Option "-iname" finden Sie den Dateinamen. Sie müssen nun ein Skript zum Erfassen von Argumenten einfügen. Sie können mit bash arbeiten und Argumente mit '$ 1, $ 2, ... $ n' Variablen erhalten. Bsp .: 'startsearch = $ 1' und' filename = $ 2' und sie verwenden den obigen Befehl mit $ startsearch und $ filename. Sie können dies selbst verbessern! –
Vielen Dank –