Dev Investigation Notes
Installed Termux but can't see your Downloads folder? Start with storage permissions
This is a translated article. Read the original in Korean ↗
I installed Termux (a terminal app for Android) to run formation, a web app for reviewing formations together alongside a video in a dance studio, on a single Android phone without a laptop. But even though I'd definitely put the project folder in the phone's Downloads folder, typing ls in Termux showed nothing, and I had no idea where to go with cd.
Conclusion
Right after installation, Termux starts out unable to see any of the phone's shared storage (Downloads, photos, and so on). You need to grant access first, in this order.
# 1. Request storage access permission (be sure to tap "허용" (Allow) in the popup)
termux-setup-storage
# 2. If you put it in the Downloads folder
ls ~/storage/downloads
# If it isn't there, start at the root of the phone's internal storage (the top level in the Files app)
ls ~/storage/shared
# 3. Enter the project folder → check for server.js → run it
cd ~/storage/downloads/formation/live
ls
node server.js
If you don't want to type the long path every time, it's better to copy the project into your Termux home directory.
cp -r ~/storage/downloads/formation ~/
cd ~/formation/live
When you get lost, three things are enough: pwd (where am I?), ls (what's here?), and cd ../cd ~ (go up/go home). Type a few letters of a folder name and press Tab to autocomplete it.
Situation
formation is a web app that overlays a grid on dance rehearsal videos and lets you mark dancers' positions to visualize formations and movement paths. It has a live feature: when one person (the leader) plays a video in the studio, everyone else connects on their own phone to watch the same point in the video together. This live feature requires a server running server.js with Node.js, and until then, that server had been running on a laptop.
In response to the question "Can a single phone handle both the server and the leader?", the initial answer was that on Android, installing Node through Termux lets one phone act as the server, leader, and hotspot . The steps for creating a local network with a hotspot had already been documented, and the Android-specific instructions covered installing Termux and running pkg install nodejs.
Symptom
After installing Termux, the user asked, "I don't know how to navigate to my directory" . This was their first time using a terminal, and they didn't even have a clear sense of what cd referred to.
Cause
Termux opens in its own independent home directory (~) inside Android's app sandbox. By default, it has no permission at all to access the phone's shared storage (Downloads, photos, and so on), so even if the formation folder is correctly placed in Downloads, Termux has no idea that folder exists . In other words, the problem isn't an inability to use cd; the path that cd could take hasn't been created yet.
That access is granted by running termux-setup-storage and allowing access in the Android permission popup. Only then does a gateway named storage appear in the home directory: ~/storage/downloads for Downloads and ~/storage/shared for the root of internal storage .
Fix
The procedure proposed in the session is the same as in "Conclusion" above :
- Run
termux-setup-storage→ allow access in the permission popup - Check for the project folder with
ls ~/storage/downloads; if it isn't there, broaden the search withls ~/storage/shared - Navigate to
cd ~/storage/downloads/formation/live, then uselsto check thatserver.jsexists - Run
node server.js - (Optional) Copy it into the Termux home directory with
cp -r ~/storage/downloads/formation ~/to shorten the path for future use
Bonus — whether this procedure actually worked was never confirmed
Immediately after these instructions, the conversation shifted to data charges on the hotspot network . Within this session (59 turns in total), no turn confirms whether the formation folder was actually found or whether node server.js started successfully in Termux. So this article treats the steps only as "the procedure proposed by the assistant." termux-setup-storage and the ~/storage paths themselves are part of Termux's basic behavior and are unlikely to change anytime soon, but it's safest to keep in mind that details can vary by version.
Reporter's Notes — "It wasn't that cd didn't work. There was nowhere to go"
cd Download. That's usually how you get there on Linux systems.Park Doeun tries it.
downloads, with an s at the end.ls to see what's in the home directory. What's in there?termux-setup-storage storage showed up in home.ls ~/storage/downloads. Whether formation shows up there is the real answer Park Doeun checks.
storage.cd; there was no path to take in the first place. That much is right.cd ~/storage/downloads/formation/live and use ls to see whether server.js is there.~/storage/shared. You might have put it somewhere other than Downloads.cp -r, so you don't have to type that long path every time.