pathchk(1)

pathchk1

Check pathnames

Usage

pathchk [-pP] pathname ...

Overview

The pathchk utility checks whether each of the specified pathname arguments is valid or portable.

A diagnostic message is written for each argument that:

  • Is longer than PATH_MAX bytes.

  • Contains any component longer than NAME_MAX bytes. (The value of NAME_MAX depends on the underlying file system.)

  • Contains a directory component that is not searchable.

It is not considered an error if a pathname argument contains a nonexistent component as long as a component by that name could be created.

The options are as follows:

-p

Perform portability checks on the specified pathname arguments. Diagnostic messages will be written for each argument that:

  • Is longer than _POSIX_PATH_MAX (255) bytes.

  • Contains a component longer than _POSIX_NAME_MAX (14) bytes.

  • Contains any character not in the portable filename character set (that is, alphanumeric characters, ‘.’, ‘-’ and ‘_’). No component may start with the hyphen (‘-’) character.

-P

In addition to the default or -p checks, write a diagnostic for each argument that:

  • Is empty.

  • Contains a component that starts with a hyphen.

Exit status

The pathchk utility exits 0 on success, and >0 if an error occurs.

Examples

Check whether the names of files in the current directory are portable to other POSIX systems:

find . -exec pathchk -p -- {} +

Releases

60 releases since FreeBSD 4.8-RELEASE; the text changed 34 times.

  1. 4.8–4.11
  2. 5.0–5.5
  3. 6.0–6.3
  4. 6.4
  5. 7.0
  6. 7.1
  7. 7.2
  8. 7.3
  9. 7.4
  10. 8.0
  11. 8.1
  12. 8.2
  13. 8.3
  14. 8.4
  15. 9.0
  16. 9.1
  17. 9.2
  18. 9.3
  19. 10.0
  20. 10.1
  21. 10.2
  22. 10.3
  23. 10.4
  24. 11.0
  25. 11.1
  26. 11.2
  27. 11.3
  28. 11.4
  29. 12.0
  30. 12.1
  31. 12.2
  32. 12.3
  33. 12.4
  34. 13.0–13.2
  35. 13.3–16.0

-P since FreeBSD 8.1-RELEASE.

Standards

The pathchk utility conforms to IEEE Std 1003.1-2001 (“POSIX.1”).

History

A pathchk utility appeared in FreeBSD 5.0.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.