summaryrefslogtreecommitdiff
path: root/cli/ops
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops')
-rw-r--r--cli/ops/fs.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/cli/ops/fs.rs b/cli/ops/fs.rs
index 61bc06d68..d5ce59f99 100644
--- a/cli/ops/fs.rs
+++ b/cli/ops/fs.rs
@@ -168,8 +168,9 @@ fn op_remove(
let is_sync = args.promise_id.is_none();
blocking_json(is_sync, move || {
debug!("op_remove {}", path.display());
- let metadata = fs::metadata(&path)?;
- if metadata.is_file() {
+ let metadata = fs::symlink_metadata(&path)?;
+ let file_type = metadata.file_type();
+ if file_type.is_file() || file_type.is_symlink() {
fs::remove_file(&path)?;
} else if recursive {
remove_dir_all(&path)?;