it-swarm.com.de

So kombinieren Sie ls und grep, um nur Dateien aufzulisten, und verwenden ls, um dirs zu zählen

Ich habe einige Probleme mit der Kombination von ls und grep. Die Sache ist, dass ich nur ls und grep verwenden muss, um alle Dateien im Home-Verzeichnis aufzulisten. Ich habe mehrere Kombinationen ausprobiert, aber ohne Wirkung. Ich denke, ich sollte es so verwenden:

ls /home/mydir | grep stomething

Die nächste Frage ist (keine Ahnung, wie man das macht), wie man ls und einen anderen Befehl benutzt, um die Anzahl der Verzeichnisse im Hauptordner zu zählen.

2
masterllama

Ihre Verwendung von ls und grep ist korrekt. Dies führt dazu, dass die Ausgabe von ls 'stomething' enthält. Beachten Sie, dass die gesamte Zeile betrachtet wird, nicht nur der Dateiname (meistens anwendbar, wenn bestimmte Flags mit ls verwendet werden, z. B. ls -l usw.).

Wenn Sie Verzeichnisse finden, ist es besser, find und wc (wordcount) zu verwenden:

find /home/mydir -maxdepth 1 -mindepth 1 -type d | wc -l

Erläuterung:

  • maxdepth 1, zählen bis zu einer maximalen Tiefe im Baum von 1 (z. B. nur Verzeichnisse, in diesem Fall keine Unterverzeichnisse)
  • mindepth 1, wird im Grunde genommen in diesem Beispiel verwendet, um sicherzustellen, dass find "." nicht findet. ebenfalls.
  • tippe d, suche nach Verzeichnissen (-type f findet Dateien, l findet Softlinks usw.)
  • wc -l, zähle die zurückgegebenen Zeilen

Wenn Sie das ohne die Pipe zu wc ausführen, erhalten Sie eine Liste aller Ergebnisse. Find ist ein ziemlich praktischer Befehl, mit dem man sich auskennt.

5
drinxy