Ich versuche, Ablaufverfolgungsdateien auf einem meiner RAC-Testbeds zu bereinigen. Oracle Corp war so gnädig, die Datenbank „-MGMTDB“ zu nennen, um mich vor eine nette Herausforderung zu stellen (triefend vor Sarkasmus). Hier bin ich in meinem DIAGNOTIC_DEST und wir können zwei Datenbanken sehen.
[oracle@host01 trace]$ cd /u01/app/oracle/diag/rdbms [oracle@host01 rdbms]$ ls -l total 8 drwxr-x--- 3 oracle oinstall 4096 Jun 17 14:07 _mgmtdb drwxr-x--- 3 oracle oinstall 4096 Aug 10 13:13 resp
Das Verzeichnis „resp“ ist für meine Research Primary-Datenbank, eine Testumgebung. Der erste Eintrag ist für die Cluster Health Monitor (CHM)-Repository-Datenbank auf meinem Grid Infrastructure 12.1.0.2-System. Ich kann das Verzeichnis leicht genug ändern.
[oracle@host01 rdbms]$ cd _mgmtdb [oracle@host01 _mgmtdb]$ ls -l total 4 -rw-r----- 1 oracle oinstall 0 Jun 17 14:07 i_1.mif drwxr-x--- 16 oracle oinstall 4096 Jun 17 14:06 -MGMTDB
Aber jetzt habe ich Probleme mit dem nächsten ‚cd‘-Befehl.
[oracle@host01 _mgmtdb]$ cd -MGMTDB -bash: cd: -M: invalid option cd: usage: cd [-L|-P] [dir]
Um das zu umgehen, muss ich „Punkt-Schrägstrich“ vor dem Verzeichnisnamen verwenden.
[oracle@host01 _mgmtdb]$ cd ./-MGMTDB [oracle@host01 -MGMTDB]$ cd trace
Jetzt habe ich wie jedes andere Trace-Verzeichnis von Oracle viele .trc- und .trm-Dateien, ähnlich wie diese:
-rw-r----- 1 oracle oinstall 21301 Nov 30 13:43 -MGMTDB_vktm_5472.trc -rw-r----- 1 oracle oinstall 1946 Nov 30 13:43 -MGMTDB_vktm_5472.trm
Wie kann man sie also entfernen? Ich erhalte eine Fehlermeldung, weil „rm“ denkt, dass „-M“ ein Parameter ist.
[oracle@host01 trace]$ rm *.trc *.trm rm: invalid option -- M Try `rm ./-MGMTDB_ckpt_5494.trc' to remove the file `-MGMTDB_ckpt_5494.trc'. Try `rm --help' for more information.
Der Trick besteht darin, „–“ zu verwenden, um der Befehlszeile mitzuteilen, dass das Folgende keine Liste von Parametern mehr ist.
[oracle@host01 trace]$ rm -- *.trc *.trm
Das Leben wäre so viel einfacher gewesen, wenn Oracle sich daran erinnert hätte, dass fast jeder Oracle auf *nix mit diesen albernen Parametern ausführt, die auch mit einem Bindestrich beginnen.