CHGRP(1)

πŸ’– CHGRP(1) β€” the one where your files get a whole new group chat πŸ’–

okay bestie, listen up. this is chgrp, from the General Commands Manual, and it is literally the glow-up artist for your files' group membership. no cap. πŸ¦‹


✨ NAME ✨

chgrp β€” Change the group of each FILE to GROUP.

like. that's it. that's the whole job. she changes groups. πŸ’…


✨ SYNOPSIS ✨

chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...

two ways in, babes: either you tell her the group, or you point at a reference file and go "make it match that one." easy. 🌸


✨ DESCRIPTION ✨

Change the group of each FILE to GROUP.

periodt. that's the entire plot. πŸ‘‘


✨ OPTIONS ✨

so many flags, so little time. here's every single one, no skips, i promise:

  • --help β€” Print help information. she's helpful and she knows it πŸ’β€β™€οΈ
  • -c, --changes β€” like verbose but report only when a change is made. so like, only the tea worth spilling β˜•
  • -f, --silent β€” (with --quiet below) suppress most error messages. shhh. ignoring the drama 🫢
  • --quiet β€” same deal as -f/--silent, suppress most error messages. it's giving "i'm not reading that group chat" πŸ™ˆ
  • -v, --verbose β€” output a diagnostic for every file processed. she WILL narrate. every single file. πŸ“’
  • --preserve-root β€” fail to operate recursively on /. like, do NOT touch the root, bestie, that's the whole system 😭
  • --no-preserve-root β€” do not treat / specially (the default). yes, this is the default, and yes, that's a little scary. 🚨
  • --reference <RFILE> β€” use RFILE's group rather than specifying GROUP values. copy her vibe, not her soul 🌈
  • --from <GROUP> β€” change the group only if its current group matches GROUP. gatekeeping, but make it conditional πŸŽ€
  • -R, --recursive β€” operate on files and directories recursively. all the way down, no survivors, slay πŸŒ€
  • -H β€” if a command line argument is a symbolic link to a directory, traverse it. just the command-line ones. selective, iconic ✨
  • -L β€” traverse every symbolic link to a directory encountered. all of them. she's thorough πŸ’€
  • -P β€” do not traverse any symbolic links (default). the chill option, and also the default πŸ§˜β€β™€οΈ
  • --dereference β€” affect the referent of each symbolic link (this is the default), rather than the symbolic link itself. yes bestie, this is the default too, keep up πŸ’œ
  • -h, --no-dereference β€” affect symbolic links instead of any referenced file (useful only on systems that can change the ownership of a symlink). niche, but iconic ⭐
  • -V, --version β€” Print version. proof of life 🫢

✨ VERSION ✨

v(uutils coreutils) 0.12.0

that's the version, bestie. screenshot it. πŸ“Έ


✨ EXAMPLES ✨

these are the moves, fr fr. all provided by the tldr-pages project <https://tldr.sh> under the CC BY 4.0 License. also heads up: as uutils is a work in progress, some examples might fail. not me being shady, that's just the truth πŸ’€

Change the owner group of a file/directory:

chgrp group path/to/file_or_directory

Recursively change the owner group of a directory and its contents:

chgrp [-R|--recursive] group path/to/directory

Change the owner group of a symbolic link:

chgrp [-h|--no-dereference] group path/to/symlink

Change the owner group of a file/directory to match a reference file:

chgrp --reference path/to/reference_file path/to/file_or_directory

⚠️ ok real talk for one sec bestie: --no-preserve-root is the default, which means recursion really can touch / if you're not careful. and -P vs -L vs -H genuinely changes which symlinks get walked. read before you press enter, i'm begging πŸ™

okay that's the whole page!! πŸŽ€ this was the chgrp(1) page from the General Commands Manual, version v(uutils coreutils) 0.12.0, dated 2026-09-25. mwah. go fix those group permissions, main character. πŸ’–πŸ¦‹βœ¨πŸ‘‘

πŸ“¦ where this page comes from