Ik probeer traceerbestanden op een van mijn RAC-testbeds op te schonen. Oracle Corp was zo vriendelijk om de database "-MGMTDB" te noemen om me een leuke uitdaging te geven (druipend van sarcasme). Hier ben ik in mijn DIAGNOTIC_DEST en we kunnen twee databases zien.
[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
De directory 'resp' is voor mijn Research Primary database, een testbed. Het eerste item is voor de Cluster Health Monitor (CHM) repository-database op mijn Grid Infrastructure 12.1.0.2-systeem. Ik kan de directory gemakkelijk genoeg veranderen.
[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
Maar nu heb ik problemen met het volgende 'cd'-commando.
[oracle@host01 _mgmtdb]$ cd -MGMTDB -bash: cd: -M: invalid option cd: usage: cd [-L|-P] [dir]
Om dat te omzeilen, moet ik "dot-slash" gebruiken voor de mapnaam.
[oracle@host01 _mgmtdb]$ cd ./-MGMTDB [oracle@host01 -MGMTDB]$ cd trace
Nu heb ik, net als elke andere Oracle-traceerdirectory, veel .trc- en .trm-bestanden, vergelijkbaar met deze:
-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
Dus hoe ze te verwijderen? Ik krijg een foutmelding omdat 'rm' denkt dat '-M' een parameter is.
[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.
De truc is om "-" te gebruiken om de opdrachtregel te vertellen dat wat volgt niet langer een lijst met parameters is.
[oracle@host01 trace]$ rm -- *.trc *.trm
Het leven zou zoveel gemakkelijker zijn geweest als Oracle zich had herinnerd dat bijna iedereen Oracle op *nix draait met deze dwaze parameters die ook met een streepje beginnen.