Q. I see [ command in /usr/bin directory. What is the /usr/bin/[ command used for?
A.This is test command and it is used to check file types and compare values.
General syntax is as follows:
[ EXPRESSION ]
For example, find out if /etc/passwd exists or not:
[ -f /etc/passwd ] && echo "Yes" || echo "No"
Regularly you write it as follows:
if [ -f /etc/passwd ] then echo "Yes" else echo "No" fi
OR
if test -f /etc/passwd then echo "Yes" else echo "No" fi
Read test or [ command man page for all other expressions.
man [
man test
🐧 Please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 1 comment... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Doesn’t work as written in all shells (e.g. BASH – not tested in others)
root@localhost:~/root# ls -l
total 0
-rw——-. 1 root root 0 Oct 25 14:19 test
root@localhost:~/root# [ -a test] echo “Y” || echo “N” // <– Fails
bash: [: missing `]'
N
root@localhost:~/root# [ -a test ]; echo "Y" || echo "N" // <– Requires ';' after ']'
Y
In Bash, the semi-colon ';' separates commands on the same line allowing multiple commands on a single line
–PB–