%20%C3%BCbereinstimmender%20Dateien%20auf%20einer%20Linux-Box.png)
Ich möchte für jeden Benutzer auf der Box eine spezielle Konfigurationsdatei für Awstats löschen. Wie kann ich sie am besten löschen, und zwar möglichst in einer Zeile?
Alle Dateien liegen unter /home
folgender Struktur:
/home/{username1}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
/home/{username1}/domains/{domain2}/public_html/awstats/.data/awstats.{domain2}.conf
/home/{username2}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
Einige /home/{username}/domains/
Ordner haben mehrere Domänenunterordner.
Antwort1
Hast du es versucht
rm /home/*/domains/*/public_html/awstats/.data/awstats.*.conf
?
Achtung: Wenn eine Datei vorhanden ist, deren Name etwa so lautet:
/home/phred/domains/sci-fi/public_html/awstats/.data/awstats.fantasy.conf
d. h., die beiden Vorkommen von {domain1}
stimmen nicht überein, dann wird es durch den obigen Befehl ebenfalls gelöscht. Ist das ein Problem?
PS Sofern Sie nicht nach der Überprüfung der beiden Vorkommen von {domain1}
match fragen oder mir etwas anderes fehlt, geht es in dieser Frage nicht um reguläre Ausdrücke (regexs). Wenn *
, ?
, und [
(mit einem passenden ]
) in der Shell-Befehlszeile verwendet werden, werden sie aufgerufenPlatzhalter.
Antwort2
Führen Sie /home
den folgenden Befehl aus
find . -name 'awstats*conf' | xargs rm
Bevor Sie das Ergebnis an weiterleiten, xargs
führen Sie es find . -name 'awstas*.conf
alleine aus, um sicherzustellen, dass nur die Dateien aufgelistet werden, die Sie entfernen möchten. Leiten Sie es xargs rm
erst weiter, nachdem Sie dies bestätigt haben.
Bei find
Verwendung wie oben gezeigt wird rekursiv nach Dateien gesucht, die dem angegebenen regulären Ausdruck entsprechen. Weitere Informationen finden Sie in den Manpages für find und xargs.