Files and folders
Create, show, copy, move, search, delete: the most important commands for files.
All examples were typed on 29 Oct 2026 in NULLos 0.2 in QEMU.
Important: what stays after a restart
When NULLos starts, it loads a small file system into memory. Almost everything lives there: /bin,
/etc, /tmp and also your home folder /. Whatever you create there is gone after a restart.
Only what is in /boot stays. That is the boot partition. In QEMU it lives in your
image nullos.img (see QEMU and SSH). In NULLos itself, /boot is currently mounted read-only (as of 30 Oct 2026):
you create new files for it on the Mac.
df shows the file system in memory:
Dateisystem Typ Größe belegt frei Anteil eingehängt in
initrd ramfs 457 MiB 3.3 MiB 454 MiB 1% /
The folders
l /
bin/ boot/ dev/ etc/ sys/ tmp/
| Folder | Contents |
/bin | all programs |
/boot | the boot partition (stays after a restart) |
/dev | devices |
/etc | settings |
/sys | help texts and descriptions of the commands |
/tmp | room for temporary files |
A short tour
cd /tmp
md probe/unter
pr "Hallo Welt" > probe/a.txt
sh probe/a.txt
Hallo Welt
cd changes the folder.
md creates a folder, and any missing parent folders along with it.
pr prints text, > writes it into a file.
sh shows a file (like cat).
Copy, move, rename
c probe/a.txt probe/b.txt
m probe/b.txt probe/unter/
rn probe/a.txt neu.txt
c copies. Whole folders with c -r.
m moves.
rn only changes the name; the file stays in the same folder.
c never overwrites without asking. If the target already exists, you get:
c: probe/b.txt: Existiert schon (mit -f überschreiben)
With c -f you overwrite on purpose.
Looking at things
l -l probe
- 11 2026-10-29 16:55 neu.txt
d 0 2026-10-29 16:56 unter/
| Command | What it shows |
l | contents of a folder; folders end with / |
l -l | plus type, size and date |
l -t | as a tree |
st DATEI | type, size, permissions and times of a file |
sz ORDNER | how much space folders and files take up (in bytes) |
sh DATEI | the contents of a file |
hd -n 10 DATEI | only the first 10 lines |
Searching
g Welt probe/neu.txt
g -r Welt probe
probe/neu.txt:Hallo Welt
probe/unter/b.txt:Hallo Welt
g searches for text in files. With -r it searches all files in a folder.
f '*.txt' probe
f finds files by name. The pattern may contain * and ?. Put it in quotes so that
the shell does not expand it first. h f shows more options, for example -t f (files only)
or -s +1M (at least 1 MB).
Deleting
d probe/neu.txt
d -r probe
d deletes immediately and for good. There is no trash. d only deletes folders with -r:
d: probe ist ein Ordner (mit -r löschen)
Not sure? d -n -r probe only shows what would be deleted.
Editing
e notiz.txt
e is the editor. How it works is described in the project documentation under The editor.
USB stick
Since 30 Oct 2026 NULLos recognizes USB sticks. This was checked in QEMU with a stick image (FAT16), not yet
with a real stick.
dv shows all devices. The stick appears as a disk, here sdb with the partition sdb1:
disk sdb usb-msc an usb1-2
part sdb1 usb-msc an sdb
Mount, read, unmount:
md /mnt/stick
mo /dev/sdb1 /mnt/stick
l /mnt/stick
sh /mnt/stick/HALLO.TXT
mo -u /mnt/stick
FAT16 unter /mnt/stick (/dev/sdb1)
HALLO.TXT
Hallo vom USB-Stick
mo with no arguments shows what is currently mounted.
Writing does not work yet. coming soon The stick is read-only:
s: /mnt/stick/neu.txt: Nur lesbares Dateisystem
Packing
arc packs and unpacks archives (tar, zip and others). The format comes from the file extension:
arc sicherung.tar.gz probe
arc -l sicherung.tar.gz
arc -x sicherung.tar.gz ziel
arc -x only overwrites existing files with -f. h arc shows more.