-k FILE (conditional operator)

true if the file or directory exists and has its sticky bit set.

-k is not included in POSIX.1-2017, but is provided by some implementations.

Quoting from man chmod:

The restricted deletion flag or sticky bit is a single bit, whose interpretation depends on the file type. For directories, it prevents unprivileged users from removing or renaming a file in the directory unless they own the file or the directory; this is called the restricted deletion flag for the directory, and is commonly found on world-writable directories like /tmp.

For regular files on some older systems, the bit saves the program’s text image on the swap device so it will load more quickly when run; this is called the sticky bit.

Examples

Different ways to test if the sticky bit of a file is set:
1
2
3
4
test -k ~/file.txt && echo "sticky bit set"
[ -k ~/file.txt ] && echo "sticky bit set"
# Bash
[[ -k ~/file.txt ]] && echo "sticky bit set"
Set the sticky bit for a file
1
chmod u+t ~/file.txt
BashSupport Pro is a Bash IDE with support for -ktry it now!
© 2020–2024 Joachim Ansorg
Imprint
Privacy Policy
Legal