HFS(1)
π HFS(1) β the shell for manipulating HFS volumes π
okay bestie, so this is the manual page for hfs, living in the General Commands Manual section. Think of it as your group chat with an old Mac volume. π«Ά
β¨ NAME β¨
hfs β shell for manipulating HFS volumes
πΈ SYNOPSIS πΈ
hfs [hfs-path [partition-no]]
π¦ DESCRIPTION π¦
hfs is an interactive command-oriented tool for manipulating HFS volumes. no cap. it's giving "I talk to vintage Mac disks and I'm not sorry." π
and here's the tea: hfs is based on the Tcl interpreter, so you can use basic Tcl constructs in addition to the commands below. two languages, one shell, main character energy fr fr. π
the commands (aka the whole menu, do not skip a single one)
mount path [partition-no]β the specified UNIX path gets opened as an HFS volume. if you pass a partition number n and the volume source lives on a partitioned medium, the *n*th discovered HFS partition gets mounted. the defaultpartition-nois 1.umount [path]β unmounts the volume that was previously mounted from the specified path. if you don't give a path, it unmounts the current volume. bye bestie πvol pathβ makes the volume previously mounted from the specified path the current volume.infoβ shows general info about the currently mounted volume. fun fact: this also pops up automatically when you mount a volume. it just wants attention. πpwdβ shows the full path to the current working HFS directory.cd [hfs-path]β changes the current working directory to the given HFS path. if you give no path, it chills you at the root of the volume.dir [hfs-path]β shows a directory listing of the specified HFS directory. no path? you get the contents of the current working directory. β¨mkdir hfs-pathβ creates a new, empty directory at the specified path.rmdir hfs-pathβ removes the specified directory. it must be empty, no exceptions, no negotiating. πcreate hfs-path [type [creator]]β creates an empty file at the specified path. you can specify the Macintoshtypeandcreator, or they default toTEXTandUNIX, respectively.del hfs-pathβ deletes both forks of the specified file. both of them. gone. πstat hfs-pathβ displays status info about the entity identified by the specified HFS path.cat hfs-pathβ displays the data fork of the specified HFS file.copyin unix-path [hfs-path [mode]]β copies the specified UNIX file to the named HFS destination path. unless you say otherwise, the file goes into the current HFS working directory using a heuristically chosen mode. the mode can be one of:macb(MacBinary II),binh(BinHex),text, orraw.copyout hfs-path [unix-path [mode]]β copies the specified HFS file into the named UNIX destination path. unless you say otherwise, the file goes into the current UNIX working directory using a heuristically chosen mode. same modes ascopyin, bestie. π§format path [partition-no [volume-name]]β initializes the specified UNIX path as an empty HFS volume with the given name, and then mounts that volume. default volume name isUntitled. iconic default, honestly. π
the plot twist π
the shell is scriptable, but you should understand that all of the commands above are actually implemented by Tcl procedures prefixed with the character "h" β like hmount, hcd, etc. β specifically to avoid name collisions with other Tcl utilities. so the "h" is there for a reason, iykyk.
for convenience, in interactive use you're allowed to omit the "h". periodt. π
π SEE ALSO π
π BUGS π
listen. cat can only display the data fork of a file. that's it. that's the limit.
also: text translations are performed unconditionally on the output. no asking, no opt-out.
and binary data cannot be handled properly from within Tcl scripts, because the character with value 0 cannot be represented in Tcl strings. tragic. genuinely tragic. π
if you need to copy files without these limitations, use copyout. it's the way. π«Ά
π AUTHOR π
Robert Leslie <rob@mars.org>
and that's the whole page, bestie β brought to you by HFSUTILS, dated 15-Jan-1997, which is giving vintage in the absolute best way. slay, go mount a volume, you've got this πβ¨
π¦ where this page comes from
- debian bookworm: hfsutils-tcltk 3.2.6-15
- fedora 43: hfsutils 3.2.6-53.fc42 Β· GPL-2.0-or-later
- fedora 43: hfsutils 3.2.6-57.fc43 Β· GPL-2.0-or-later
- fedora 44: hfsutils 3.2.6-53.fc42 Β· GPL-2.0-or-later
- fedora 44: hfsutils 3.2.6-57.fc44 Β· GPL-2.0-or-later
- nixos 26.05: hfsutils 3.2.6
- nixpkgs unstable: hfsutils 3.2.6
- opensuse-leap 16.0: xhfsutil 3.2.6-bp160.1.12 Β· GPL-2.0-or-later
- opensuse-leap 16.0: xhfsutil 3.2.6-bp160.1.12 Β· GPL-2.0-or-later
- opensuse-leap 16.0: xhfsutil 3.2.6-bp160.1.12 Β· GPL-2.0-or-later
- opensuse-leap 16.0: xhfsutil 3.2.6-bp160.1.12 Β· GPL-2.0-or-later
- ubuntu jammy: hfsutils-tcltk 3.2.6-15build2
- ubuntu noble: hfsutils-tcltk 3.2.6-16
- ubuntu questing: hfsutils-tcltk 3.2.6-16ubuntu1
- ubuntu resolute: hfsutils-tcltk 3.2.6-16ubuntu2
- ubuntu stonking: hfsutils-tcltk 3.2.6-16ubuntu2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms