Wie suche ich eine Datei auf Linux mit Like Atribut?

317
Uchsun

Ich möchte die Protokolldatei auf dem Linux-Terminal suchen und löschen.

Normalerweise benutze ich das

find -name '* .log'

Nachdem die Datei gefunden wurde, verwenden Sie als Nächstes dieses Skript

find -name '* .log' - Typ f -delete

das Skript funktioniert für

dateiname.log

aber jetzt möchte ich die datei so finden und löschen

mysqld.log-20180208 mysqld.log-20180223 mysqld.log-20180310 mysqld.log-20180325 mysqld.log-20180409 mysqld.log-20180123.xz mysqld.log-20180209 mysqld.log-20180224 mysqld.log-20180311 mysqld.log-20180326 mysqld.log-20180410 mysqld.log-20180124.xz mysqld.log-20180210 mysqld.log-20180225 mysqld.log-20180312 mysqld.log-20180327 mysqld.log-20180411 mysqld.log-20180125.xz mysqld.log-20180211 mysqld.log-20180226 mysqld.log-20180313 

Wie kann ich dateiname.log-12313 finden?

Ich möchte dateiname.log- nur mit der Nummer löschen.

Kann jemand das beheben?

Vielen Dank.

Ich schätze deine Antwort sehr.

1

1 Antwort auf die Frage

0
l0b0

Sie verwenden bereits Globs; Sie können sie für jeden Teil des Dateinamens verwenden:

find -name '*.log*' -type f -delete 

Oder wenn Sie genauer sein wollen:

find \( -name '*.log' -o -name '*.log-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' -o -name '*.log-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].xz' \) -type f -delete 
Kann es außer verwenden, zum Beispiel: außer dateiname.log, Uchsun vor 6 Jahren 0
Ja, dazu gibt es hier oder bei unix.SE Fragen dazu. l0b0 vor 6 Jahren 0