If you're the only user on the machine it's okay, as long as you know what you're doing. The general concern is that by having your current directory in PATH
, you cannot see commands as a constant list. If you need to run a script/program from your current directory, you can always explicitly run it by prepending ./
to its name (you telling the system "I want to run this file from my current directory").
Say, now you have all these little scripts all over your filesystem; one day you'll run the wrong one for sure. So, having your PATH
as a predefined list of static paths is all about order and saving oneself from a potential problem.
However, if you're going to add .
to your PATH
, I suggest appending it to the end of the list (export PATH=$PATH:.
). At least you won't override system-wide binaries this way.
If you're a root on the system and have system exposed to other users' accounts, having .
in PATH
is a huge security risk: you can cd
to some user's directory, and unintentionally run a malicious script there only because you mistyped a thing or script that has the same name as a system-wide binary.