What is /bin/true?
On a Linux system, what is /bin/true
? What is it used for?
Solution 1:
/bin/true
is a command that returns 0 (a truth value in the shell).
Its purpose is to use in places in a shell script where you would normally use a literal such as "true" in a programming language, but where the shell will only take a command to run.
/bin/false
is the opposite that returns non-zero (a false value in the shell).
Solution 2:
From the man page:
true - do nothing, successfully
true returns a status 0.
Solution 3:
Note, it's not just silly or visually nice. It helps for example to exit a program without activating the end handlers which might mess up when doing multi threading or forked programs. Like in perl:
#!/usr/bin/env perl
exec "/bin/true";
END {
print "This wont get printed .. would have if I just 'exit' or 'die'\n";
}
Solution 4:
I've seen it used to fool a system operation into thinking a command has run when it hasn't. If a command is faulty eg looping, you can replace it with a symlink to 'true' to get the master job to run. Only a good idea if the job replaced isn't essential.