diff --git a/dvc/command/cache.py b/dvc/command/cache.py
--- a/dvc/command/cache.py
+++ b/dvc/command/cache.py
@@ -1,12 +1,18 @@
 import argparse
+import logging
 
 from dvc.command import completion
 from dvc.command.base import append_doc_link, fix_subparsers
 from dvc.command.config import CmdConfig
 
+logger = logging.getLogger(__name__)
+
 
 class CmdCacheDir(CmdConfig):
     def run(self):
+        if self.args.value is None and not self.args.unset:
+            logger.info(self.config["cache"]["dir"])
+            return 0
         with self.config.edit(level=self.args.level) as edit:
             edit["cache"]["dir"] = self.args.value
         return 0
@@ -55,6 +61,8 @@ def add_parser(subparsers, parent_parser):
         "value",
         help="Path to cache directory. Relative paths are resolved relative "
         "to the current directory and saved to config relative to the "
-        "config file location.",
+        "config file location. If no path is provided, it returns the "
+        "current cache directory.",
+        nargs="?",
     ).complete = completion.DIR
     cache_dir_parser.set_defaults(func=CmdCacheDir)

@jorgeorpinel How about adding a new command like "dvc cache current" to return the current cache dir?
@cwallaceh hi! why don't we just reuse the existing subcommand - `dvc cache dir`? Do you have any concerns/see any potential problems in that solution?
@shcheklein not really, just an idea of how it could be clearer, I'll go with reusing the existing `dvc cache dir`
Thanks for the suggestion @cwallaceh but I agree with @shcheklein it's best to reuse the existing one, which was the original idea 🤓 
diff --git a/tests/func/test_cache.py b/tests/func/test_cache.py
--- a/tests/func/test_cache.py
+++ b/tests/func/test_cache.py
@@ -154,7 +154,7 @@ def test(self):
 class TestCmdCacheDir(TestDvc):
     def test(self):
         ret = main(["cache", "dir"])
-        self.assertEqual(ret, 254)
+        self.assertEqual(ret, 0)
 
     def test_abs_path(self):
         dname = os.path.join(os.path.dirname(self._root_dir), "dir")

have `dvc cache dir` print the current cache dir when no cmd flags are used
> https://discordapp.com/channels/485586884165107732/565699007037571084/577605813271658519

Currently `dvc cache dir` by itself throws an error and display's the command help. It would be useful to, instead, print the location of the currently used cache dir, so that users can always know what it is (even if it's not specified in `.dvc/config` and thus unknown to `dvc config cache.dir`).

tests/func/test_cache.py::TestCmdCacheDir::test
tests/func/test_cache.py::TestCmdCacheDir::test_abs_path tests/func/test_cache.py::TestCacheLoadBadDirCache::test tests/func/test_cache.py::TestCache::test_all tests/func/test_cache.py::TestExternalCacheDir::test_remote_references tests/func/test_cache.py::test_default_cache_type tests/func/test_cache.py::TestCache::test_get