In Linux shell, am I able to create a directory but the name would be a string returned from another program? And if I am able, how to?

In particular I am asked to create a new directory in my Home, and its name would be the minute on my computer's clock. Let's suppose /home/john/01/, 01 is the minutes on my clock.

I was thinking something like pipeline date +"%M" | mkdir but I do not know how I am gonna put that returned number into the mkdir program.

Finally another idea came to my mind, something like this mkdir (date +"%M") but this as well is a mistake. Any help please?


The concept you're looking for is command substitution, which uses the syntax $(command)

mkdir /home/john/$(date +%M)

You may also see the older 'backtick' syntax, `command`


mkdir $(date +%Y%m%d) or I personnaly use mkdir $(date +%Y%m%d_%H%M%S) for hh:mm:ss. date --help will give you the different formats if you need something more.


You can do it easily using following command:

$ min=$(date +"+%M"); mkdir $min
  • 2
    Also a nice way, good to know that you can declare a variable and then give that value to mkdir program, thanks! :) – Mr T Dec 31 '15 at 16:31

You can do that by typing the following command:

mkdir ~/$(date | awk -F':' '{print $2}')

The command creates a directory in home folder and gives the current minute as name.

  • 1
    Thanks a lot, that way works as well but its a little bit complicated for me!! – Mr T Dec 31 '15 at 16:31

Not the answer you're looking for? Browse other questions tagged or ask your own question.