Replies: 1 comment
|
This is expected for an external process opened while browsing a remote VFS directory. An OS process can only have a local filesystem path as its current directory; it cannot chdir to an SFTP URL. Yazi maps the remote URL to its local cache bucket before launching the shell. The runner calls Cwd::ensure(remote_url) and then Command.current_dir(cwd): shell.rs. Cwd::ensure creates/returns the cache path under Yazi's temporary area: cwd.rs. Consequently:
Use Yazi's built-in VFS operations for supported file actions. For chmod, invoke a real remote command with an explicit path, for example: or write a plugin using Yazi's SFTP/VFS API. Running a local interactive shell “inside” the remote directory would require a mounted filesystem or an SSH shell session, so the temp cwd is an intentional transport boundary even though it deserves clearer UI/documentation. |
Uh oh!
There was an error while loading. Please reload this page.
What system are you running Yazi on?
Windows
What terminal are you running Yazi in?
wezterm 20250730-195751-6a493f88
yazi --debugoutputYazi Version : 26.5.6 (aa52643 2026-05-05) Debug : false Triple : x86_64-pc-windows-msvc (windows-x86_64) Rustc : 1.95.0 (59807616 2026-04-14) Backtrace: None Ya Version: 26.5.6 (aa52643 2026-05-05) Config Init : C:\Users\username\AppData\Roaming\yazi\config\init.lua (The system cannot find the file specified. (os error 2)) Yazi : C:\Users\username\AppData\Roaming\yazi\config\yazi.toml (The system cannot find the file specified. (os error 2)) Keymap : C:\Users\username\AppData\Roaming\yazi\config\keymap.toml (The system cannot find the file specified. (os error 2)) Theme : C:\Users\username\AppData\Roaming\yazi\config\theme.toml (The system cannot find the file specified. (os error 2)) VFS : C:\Users\username\AppData\Roaming\yazi\config\vfs.toml (836 chars) Package : C:\Users\username\AppData\Roaming\yazi\config\package.toml (The system cannot find the file specified. (os error 2)) Dark/light flavor: ArcSwapAny("") / ArcSwapAny("") Emulator TERM : Some("xterm-256color") TERM_PROGRAM : Some("WezTerm") TERM_PROGRAM_VERSION: Some("20250730-195751-6a493f88") Brand.from_env : Some(WezTerm) Emulator.detect : Emulator { kind: Left(WezTerm), version: "WezTerm 20250730-195751-6a493f88", light: false, csi_16t: (9, 20), force_16t: true } Adapter Adapter.matches : Iip Dimension.available: Dimension { rows: 48, columns: 208, width: 0, height: 0 } Desktop XDG_SESSION_TYPE : None WAYLAND_DISPLAY : None DISPLAY : None SWAYSOCK : None HYPRLAND_INSTANCE_SIGNATURE: None WAYFIRE_SOCKET : None SSH shared.in_ssh_connection: false WSL WSL: false Variables SHELL : None EDITOR : None VISUAL : None YAZI_FILE_ONE : None YAZI_CONFIG_HOME : None YAZI_ZOXIDE_OPTS : None SSH_AUTH_SOCK : Some("C:\\Users\\username\\.local/share/wezterm\\agent.17488") FZF_DEFAULT_OPTS : None FZF_DEFAULT_COMMAND: None Text Opener default : Some(OpenerRule { id: Id(4), run: NonEmptyString("code %s"), block: false, orphan: true, desc: "code", for: Windows, spread: true }) block-create: Some(OpenerRule { id: Id(5), run: NonEmptyString("code -w %s"), block: true, orphan: false, desc: "code (block)", for: Windows, spread: true }) block-rename: Some(OpenerRule { id: Id(5), run: NonEmptyString("code -w %s"), block: true, orphan: false, desc: "code (block)", for: Windows, spread: true }) Multiplexers TMUX : false tmux version : program not found tmux build flags : enable-sixel=Unknown ZELLIJ_SESSION_NAME: None Zellij version : program not found Dependencies file : 5.44 ueberzugpp : program not found ffmpeg/ffprobe: 8.0 / 8.0 pdftoppm : 26.02.0 magick : 7.1.1-24 fzf : 0.72.0 fd/fdfind : 10.4.2 / program not found rg : 15.1.0 chafa : 1.18.2 zoxide : 0.9.9 7zz/7z : program not found / 26.01 resvg : program not found jq : 1.8.1 Clipboard wl-copy/paste: program not found / program not found xclip : program not found xsel : program not found Routine `file -bL --mime-type`: text/plain See https://yazi-rs.github.io/docs/plugins/overview#debugging on how to enable logging or debug runtime errors.Describe the question
I was uploading a file through sftp to a remote server, but all the uploaded files had permission of 200.
I naively thought I could just run the chmod in interactive shell, but whenever I tried it just gave me the following error.
chmod: cannot access 'insert_valid_filename': No such file or directory Exited with status code: 1 Process failedAnd to add to the confusion some command such as touch run without any error, but I could not see the effect on neither remote directory nor the directory I started yazi.
Eventually I figured out that all the commands were actually run in temp folder, (e.g. C:\Users\username\AppData\Local\Temp\yazi-0) and all the files created through touch were there.
I was wondering if this was an intended feature, since I could not find any mention of it in the documentation and it was a very confusion behaviour.
Anything else?
No response
Checklist
All reactions