diff --git a/yazi-actor/src/mgr/rename.rs b/yazi-actor/src/mgr/rename.rs index 1c0a1e72..9193b395 100644 --- a/yazi-actor/src/mgr/rename.rs +++ b/yazi-actor/src/mgr/rename.rs @@ -67,18 +67,18 @@ impl Actor for Rename { return; }; - if opt.force || !maybe_exists(&new).await || provider::must_identical(&old, &new).await { - if conversion_to_dir_requested && target_is_empty { - Self::replace_file_with_dir(old, new).await.ok(); - } else { - Self::r#do(tab, old, new).await.ok(); - } - } else if ConfirmProxy::show(ConfirmCfg::overwrite(&new)).await { - if conversion_to_dir_requested && target_is_empty { - Self::replace_file_with_dir(old, new).await.ok(); - } else { - Self::r#do(tab, old, new).await.ok(); - } + if !opt.force + && maybe_exists(&new).await + && !provider::must_identical(&old, &new).await + && !ConfirmProxy::show(ConfirmCfg::overwrite(&new)).await + { + return; + } + + if conversion_to_dir_requested && target_is_empty { + Self::replace_file_with_dir(old, new).await.ok(); + } else { + Self::r#do(tab, old, new).await.ok(); } }); succ!();