NAD(1)

πŸ“¦ version 4.5.1, in ubuntu stonking

πŸ’– nad(1) β€” Netatalk AFP Fileserver Manual πŸ’–

bestie. you found the manual for nad, and honestly? it's giving β€œi run this Netatalk AFP volume and i need my metadata to stay cute.” let's go. ✨


🌸 NAME 🌸

nad β€” Netatalk AppleDouble file utility suite


✨ SYNOPSIS ✨

nad [-F configfile] [ls | cp | mv | rm | mkdir | rmdir | set | find] […]

nad [-v | --version]

πŸŽ€ DESCRIPTION πŸŽ€

nad is a file utility suite that can be used on a Netatalk host to manipulate files and directories in AFP shared volumes. AppleDouble data β€” which could be one of extended attributes of files, ._ files, or files in .AppleDouble directories β€” as well as the CNID databases are updated appropriately when files in the shared Netatalk volume are modified. πŸ’…

Using nad is preferable over the operating system’s native file operation commands on files and directories in a Netatalk shared volume, because it preserves the integrity of Mac OS metadata and accuracy of the CNID database. periodt.

It depends on Netatalk running on the host system and the AFP volume being shared by Netatalk.

Only users with appropriate permissions to access the files and directories can use nad to manipulate them. It is sensitive to afp.conf settings such as valid users and invalid users. πŸ‘‘


πŸ¦‹ OPTIONS πŸ¦‹

  • -F configfile β€” Use configfile as the full path to the Netatalk configuration file.

🌈 AVAILABLE COMMANDS 🌈

  • List files and directories.
nad ls [-adlRu] {file|directory […]}
  • Copy files and directories.
nad cp [-aipvf] {src_file} {dst_file}

nad cp -R [-aipvf] {src_file|src_directory …} {dst_directory}
  • Move files and directories.
nad mv [-finv] {src_file} {dst_file}

nad mv [-finv] {src_file|src_directory …} {dst_directory}
  • Remove files and directories.
nad rm [-Rv] {file|directory}
  • Create directories.
nad mkdir [-pv] {directory […]}
  • Remove empty directories.
nad rmdir [-pv] {directory […]}
  • Set metadata on files.
nad set [-t type] [-c creator] [-l label] [-f flags] [-a attributes] {file}
  • Find files and directories.
nad find [-v volume_path] {name}
  • Show version.
nad -v | --version

πŸ’– nad ls πŸ’–

List files and directories in an AFP volume. AppleDouble metadata and CNIDs are displayed in long output mode. ✨

Options:

  • -a β€” Include directory entries whose names begin with a dot (.)
  • -d β€” Directories are listed as plain files
  • -l β€” Long output, list AFP info
  • -R β€” List subdirectories recursively
  • -u β€” List UNIX info

🌟 Long output description 🌟

<unixinfo> <FinderFlags> <AFP Attributes> <Color> <Type> <Creator> <CNID from AppleDouble> <name>

FinderFlags (valid for (f)iles and/or (d)irectories):

  • d = On Desktop (f/d)
  • e = Hidden extension (f/d)
  • m = Shared (can run multiple times) (f)
  • n = No INIT resources (f)
  • i = Inited (f/d)
  • c = Custom icon (f/d)
  • t = Stationery (f)
  • s = Name locked (f/d)
  • b = Bundle (f/d)
  • v = Invisible (f/d)
  • a = Alias file (f/d)

AFP Attributes:

  • y = System (f/d)
  • w = No write (f)
  • p = Needs backup (f/d)
  • r = No rename (f/d)
  • l = No delete (f/d)
  • o = No copy (f)
Note: any letter appearing in uppercase means the flag is set but it's a directory for which the flag is not allowed.

πŸ’… nad cp πŸ’…

Copy files and directories in an AFP volume.

In the first synopsis form, the cp utility copies the contents of the src_file to the dst_file. In the second synopsis form, the contents of each named src_file is copied to the destination dst_directory. The names of the files themselves are not changed. If cp detects an attempt to copy a file to itself, the copy will fail. πŸ™ˆ

When a copy targeting an AFP volume is detected, its CNID database daemon is connected and all copies will also go through the CNID database. AppleDouble data are also copied and created as needed when the target is an AFP volume. ✨

Options:

  • -a β€” Archive mode. Same as -Rp.
  • -f β€” For each existing destination pathname, remove it and create a new file, without prompting for confirmation regardless of its permissions. (The -f option overrides any previous -i or -n options.)
  • -i β€” Cause cp to write a prompt to the standard error output before copying a file that would overwrite an existing file. If the response from the standard input begins with the character y or Y, the file copy is attempted. (The -i option overrides any previous -f or -n options.)
  • -n β€” Do not overwrite an existing file. (The -n option overrides any previous -f or -i options.)
  • -p β€” Cause cp to preserve the following attributes of each source file in the copy: modification time, access time, file flags, file mode, user ID, and group ID, as allowed by permissions. If the user ID and group ID cannot be preserved, no error message is displayed and the exit value is not altered.
  • -R β€” If src_file designates a directory, cp copies the directory and the entire subtree connected at that point. If the src_file ends in a /, the contents of the directory are copied rather than the directory itself.
  • -v β€” Cause cp to be verbose, showing files as they are copied.
  • -x β€” File system mount points are not traversed.

πŸ¦‹ nad mv πŸ¦‹

Move files and directories.

Move files around within an AFP volume, updating the CNID database as needed. If either condition below is true, the files are copied and removed from the source. πŸ’€

  • source or destination is not an AFP volume
  • source AFP volume != destination AFP volume

Options:

  • -f β€” Do not prompt for confirmation before overwriting the destination path. (The -f option overrides any previous -i or -n options.)
  • -i β€” Cause mv to write a prompt to standard error before moving a file that would overwrite an existing file. If the response from the standard input begins with the character y or Y, the move is attempted. (The -i option overrides any previous -f or -n options.)
  • -n β€” Do not overwrite an existing file. (The -n option overrides any previous -f or -i options.)
  • -v β€” Cause mv to be verbose, showing files after they are moved.

πŸ—‘οΈ nad rm πŸ—‘οΈ

Remove files and directories in an AFP volume.

The rm utility attempts to remove the non-directory type files specified on the command line. The corresponding CNIDs are deleted from the volume’s database, and AppleDouble metadata is removed. ✨

The options are as follows:

  • -R β€” Attempt to remove the file hierarchy rooted in each file argument.
  • -v β€” Be verbose when deleting files, showing them as they are removed.

πŸŽ€ nad mkdir πŸŽ€

Create directories in an AFP volume. The corresponding CNIDs are added to the volume’s database, and AppleDouble metadata is initialized. 🌸

The options are as follows:

  • -p β€” Create intermediate directories as required. If an intermediate or the target directory already exists, it is not considered an error.
  • -v β€” Be verbose when creating directories, showing them as they are created.

πŸ’… nad rmdir πŸ’…

Remove empty directories in an AFP volume. The corresponding CNIDs are deleted from the volume’s database, and AppleDouble metadata is removed. ✨

The volume root directory and its parent directories cannot be removed. 🚫

The options are as follows:

  • -p β€” Each operand is treated as a pathname of which all components will be removed, if they are empty, starting with the last most component. Will not remove the volume root directory or its parents.
  • -v β€” Be verbose when removing directories, showing them as they are removed.

πŸ‘‘ nad set πŸ‘‘

Set metadata on files.

The set utility alters metadata on files within an AFP volume. πŸ’–

The options are as follows:

  • -t type β€” Change a file’s four character file type.
  • -c creator β€” Change a file’s four character creator type.
  • -l label β€” Change a file’s color label. See list below for available colors.
  • -f flags β€” Change a file’s Finder flags. See list below for available flags. Uppercase letter sets the flag, lowercase removes the flag.
  • -a attributes β€” Change a file’s attributes. See list below for available attributes. Uppercase letter sets the flag, lowercase removes the flag.

🌈 Flag descriptions 🌈

Color Labels:

none | grey | green | violet | blue | yellow | red | orange

Finder Flags (valid for (f)iles and/or (d)irectories):

  • d = On Desktop (f/d)
  • e = Hidden extension (f/d)
  • m = Shared (can run multiple times) (f)
  • n = No INIT resources (f)
  • i = Inited (f/d)
  • c = Custom icon (f/d)
  • t = Stationery (f)
  • s = Name locked (f/d)
  • b = Bundle (f/d)
  • v = Invisible (f/d)
  • a = Alias file (f/d)

AFP Attributes:

  • y = System (f/d)
  • w = No write (f)
  • p = Needs backup (f/d)
  • r = No rename (f/d)
  • l = No delete (f/d)
  • o = No copy (f)

πŸ”₯ nad find πŸ”₯

Find files and directories in an AFP volume.

This returns a list of paths that wholly or partially match the given name. πŸ¦‹

It takes one option:

  • -v path β€” Use path to the shared volume to search rather than the current working directory.

✨ EXAMPLES ✨

okay bestie, this is the part where it all comes together πŸ’– real commands, real output, real "ohhh THAT's what those columns are" moments. let's go.

🌸 Listing a shared AFP volume

wanna see every fun little detail of what's chilling in a shared AFP volume? run this:

$ nad ls -al /srv/afpshare
---Nic-s--- ------ --- ---- ----           2   .
----------- ------ --- ---- ----           1   ..
----i---b-- ------ --- APPL SBMC          40   AppleShare IP Browser
---------v- ------ --- ---- ----          36   Network Trash Folder
-------s-v- ------ --- ---- ----          35   TheVolumeSettingsFolder
----ic-s--- ------ gre PNGf GKON          39   picture 1.png
----ic----- ------ --- PNGf GKON          41   picture 2.png
----ic----- ------ --- PNGf GKON          42   picture 3.png

like… it's giving organized. 😌✨

πŸŽ€ The legend (iykyk)

here's what each column is actually telling you, no cap:

  • column 1: Finder flags
  • column 2: AFP attributes
  • column 3: color label
  • column 4: type
  • column 5: creator
  • column 6: CNID from AppleDouble
  • column 7: file name

seven columns, seven little truths πŸ’… that's the whole vibe check right there.

πŸ¦‹ Finding files by name in that same volume

okay so say you want every file with "Report" in the name inside the shared AFP volume at /srv/afpshare β€” you hit it with this:

$ nad find -v /srv/afpshare Report
/srv/afpshare/Documents/2025/Report January 2025.doc
/srv/afpshare/Documents/2024/Report December 2024.doc
/srv/afpshare/Documents/Report Template.doc

look at that output. three for three, all found, all printed. that is main character energy fr fr πŸ”₯πŸ‘‘


πŸ’œ SEE ALSO

go read these next, bestie, they're the whole friend group:

πŸ‘‘ AUTHOR

Contributors to the Netatalk Project (https://netatalk.io/contributors)

like… a whole community showed up for this. iconic behavior, honestly. 🫢


and that's the whole page, babes πŸ’– this was Netatalk 4.5.1, the NAD(1) manual, and you have officially read all of it. slay, you ate that. go touch some AFP volumes. βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from