diff --git a/src-tauri/src/cmds.rs b/src-tauri/src/cmds.rs
index fc1e3be1c6b1b841f5fadbd994bb366de0cda1b7..1ea6355231e7c48673dcaa76313dd531f26cf84d 100644
--- a/src-tauri/src/cmds.rs
+++ b/src-tauri/src/cmds.rs
@@ -6,7 +6,7 @@ use crate::{
 use crate::{ret_err, wrap_err};
 use anyhow::Result;
 use serde_yaml::Mapping;
-use std::{path::PathBuf, process::Command, process::Stdio};
+use std::{path::PathBuf, process::Command};
 use tauri::{api, Manager, State};
 
 /// get all profiles from `profiles.yaml`
@@ -321,55 +321,53 @@ pub fn open_logs_dir() -> Result<(), String> {
   open_path_cmd(log_dir, "failed to open logs dir")
 }
 
-/// get open/explorer command
-fn open_path_cmd(dir: PathBuf, err_str: &str) -> Result<(), String> {
+/// use the os default open command to open file or dir
+fn open_path_cmd(path: PathBuf, err_str: &str) -> Result<(), String> {
   let result;
+
   #[cfg(target_os = "windows")]
   {
     use std::os::windows::process::CommandExt;
 
     result = Command::new("explorer")
-        .creation_flags(0x08000000)
-        .arg(&dir)
-        .spawn();
+      .creation_flags(0x08000000)
+      .arg(&path)
+      .spawn();
   }
 
   #[cfg(target_os = "macos")]
   {
-    result = Command::new("open").arg(&dir).spawn();
+    result = Command::new("open").arg(&path).spawn();
   }
 
   #[cfg(target_os = "linux")]
   {
-    result = Command::new("xdg-open").arg(&dir).stdout(Stdio::piped()).stderr(Stdio::piped()).spawn();
+    result = Command::new("xdg-open").arg(&path).spawn();
   }
 
   match result {
-    Ok(child) => {
-      match child.wait_with_output() {
-        Ok(out) => {
-          if let Some(code) = out.status.code() {
-            if code != 0 {
-              log::error!("open dir {:?} failed, child exit code: {:?}, stderr: {:?} stdout: {:?}",
-                &dir, code, String::from_utf8_lossy(&out.stderr), String::from_utf8_lossy(&out.stdout));
-              return Err(err_str.into());
-            }
+    Ok(child) => match child.wait_with_output() {
+      Ok(out) => {
+        if let Some(code) = out.status.code() {
+          if code != 0 {
+            log::error!(
+              "failed to open path {:?} for {} (code {code})",
+              &path,
+              String::from_utf8_lossy(&out.stderr),
+            );
+            return Err(err_str.into());
           }
-        },
-        Err(err) => {
-          log::error!("open dir {:?} failed, child exec err: {}", &dir, err);
-          return Err(err_str.into());
         }
       }
+      Err(err) => {
+        log::error!("failed to open path {:?} for {err}", &path);
+        return Err(err_str.into());
+      }
     },
     Err(err) => {
-      log::error!("open dir {:?} spawn process failed, err: {}", &dir, err);
+      log::error!("failed to open path {:?} for {err}", &path);
       return Err(err_str.into());
-    },
-    _ => {
-      log::error!("open dir {:?} failed due to OS not supported", &dir);
-      return Err(err_str.into());
-    },
+    }
   }
 
   return Ok(());