diff --git a/yazi-shared/src/fs/cha.rs b/yazi-shared/src/fs/cha.rs index fd0eea22..a1b116ba 100644 --- a/yazi-shared/src/fs/cha.rs +++ b/yazi-shared/src/fs/cha.rs @@ -38,8 +38,6 @@ impl From for Cha { let mut ck = ChaKind::empty(); if m.is_dir() { ck |= ChaKind::DIR; - } else if m.is_symlink() { - ck |= ChaKind::LINK; } #[cfg(unix)] diff --git a/yazi-shared/src/fs/file.rs b/yazi-shared/src/fs/file.rs index 6216f77a..0f558794 100644 --- a/yazi-shared/src/fs/file.rs +++ b/yazi-shared/src/fs/file.rs @@ -31,13 +31,14 @@ impl File { let (is_link, mut link_to) = (meta.is_symlink(), None); if is_link { - ck |= ChaKind::LINK; meta = fs::metadata(&url).await.unwrap_or(meta); link_to = fs::read_link(&url).await.map(Url::from).ok(); } if is_link && meta.is_symlink() { ck |= ChaKind::ORPHAN; + } else if is_link { + ck |= ChaKind::LINK; } if url.is_hidden() {