GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich den Ordner, in dem gesucht wird, von find ausschließen?

Der einfachste Weg wäre, einfach -mindepth 1 hinzuzufügen , wodurch die erste Tiefenhierarchie übersprungen und somit Ihr übergeordnetes Verzeichnis weggelassen wird.

Außerdem benötigen Sie keine zusätzliche -exec Anruf bei rm , können Sie einfach delete die Ordner direkt, wenn sie leer sind.

find /var/www/html/content/processing -mindepth 1 -type d -mtime +1 -delete

Wenn sie nicht leer sind:

find /var/www/html/content/processing -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;

Wenn Sie faul sind, können Sie auch einen Platzhalter erweitern lassen. Seit * enthält standardmäßig nicht das aktuelle Verzeichnis (es sei denn, dotglob gesetzt ist), könnten Sie auch Folgendes tun:

find /var/www/html/content/processing/* -type d -mtime +1 -delete

Dies würde jedoch auch keine versteckten Ordner enthalten, wiederum aufgrund des dotglob Option.


Das Problem ist, dass find das aktuelle Verzeichnis (.) zusammen mit den anderen Verzeichnissen zurückgibt, also sowohl den Verarbeitungsordner als auch die Unterverzeichnisse löscht. Eine schnelle Möglichkeit, dies zu umgehen, wäre, die Option

anzuhängen
-not -name .

was verhindert, dass find das aktuelle Verzeichnis ausgibt und es wiederum nicht löscht.

Das würde funktionieren, wenn Sie den Befehl innerhalb des Verarbeitungsverzeichnisses ausführen würden, um der Tatsache Rechnung zu tragen, dass Sie einen absoluten Pfad verwenden:

-not -name /var/www/html/content/processing

Und der ganze Befehl wäre:

find /var/www/html/content/processing -type d -mtime +1 -not -name /var/www/html/content/processing -exec rm -rf {} \;

Linux
  1. Verzeichnis in Suchen ausschließen?

  2. Ausschlussverzeichnis finden?

  3. Wie kann man ein freigegebenes Verzeichnis per Sftp zugänglich machen?

  4. Wie finde ich die maximale Stapelgröße?

  5. Wie man die Ergebnisse von 'find' unter Linux an mv weiterleitet

So zählen Sie Dateien im Verzeichnis in Linux

So ermitteln Sie die Größe eines Verzeichnisses in Linux

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

So schließen Sie ein Verzeichnis beim Suchen von Dateien in Linux aus

So ermitteln Sie die Gesamtgröße eines Verzeichnisses in Linux

Der Linux-Befehl zum Suchen des Verzeichnisses:Erklärt