Suppose my current directory is A. I want to create a directory B and a file \"myfile.txt\" inside B.
How to do th
mkdir -p Python/Beginner/CH01 && touch $_/hello_world.py
Explanation: -p -> use -p if you wanna create parent and child directories $_ -> use it for current directory we work with it inline
devnull's answer provides a function:
mkfile() { mkdir -p -- "$1" && touch -- "$1"/"$2" }
This function did not work for me as is (I'm running bash 4.3.48 on WSL Ubuntu), but did work once I removed the double dashes. So, this worked for me:
echo 'mkfile() { mkdir -p "$1" && touch "$1"/"$2" }' >> ~/.bash_profile
source ~/.bash_profile
mkfile sample/dir test.file
This might work:
mkdir {{FOLDER NAME}}
cd {{FOLDER NAME}}
touch {{FOLDER NAME}}/file.txt
mkdir B && touch B/myfile.txt
Alternatively, create a function:
mkfile() { mkdir -p -- "$1" && touch -- "$1"/"$2" }
Execute it with 2 arguments: path to create and filename. Saying:
mkfile B/C/D myfile.txt
would create the file myfile.txt
in the directory B/C/D
.
For this purpose, you can create your own function. For example:
$ echo 'mkfile() { mkdir -p "$(dirname "$1")" && touch "$1" ; }' >> ~/.bashrc
$ source ~/.bashrc
$ mkfile ./fldr1/fldr2/file.txt
Explanation:
~/.bashrc
file using the echo
command-p
flag is for creating the nested folders, such as fldr2
~/.bashrc
file with the source
commandmkfile
function to create the fileadd this to ~/.bashrc:
function mkfile() {
mkdir -p "$1" && touch "$1"/"$2"
}
save and then to make it available without a reboot or logout execute: $ source ~/.bashrc
or you can just do:
$ mkdir folder && touch $_/file.txt
note that $_ = folder