假设我当前的目录是 A 。我想在 B 中创建一个目录 B 和一个文件“myfile.txt”。
如何在终端的一个命令中执行此操作?
修改
目录可以多次嵌套。就像我可能想要在其中创建 B / C / D 然后再创建“myfile.txt”。我也不想重复目录部分。
以下命令将在任何级别创建目录。
mkdir -p B/C/D
和
mkdir -p B/C/D && touch B/C/D/myfile.txt
将创建目录和文件。但我不想在touch
命令后重复目录部分。这可能吗?
答案 0 :(得分:32)
mkdir B && touch B/myfile.txt
或者,创建一个函数:
mkfile() { mkdir -p -- "$1" && touch -- "$1"/"$2" }
使用2个参数执行它:create to path和filename。话说:
mkfile B/C/D myfile.txt
将在目录myfile.txt
中创建文件B/C/D
。
答案 1 :(得分:1)
为此,您可以创建自己的功能。例如:
$ echo 'mkfile() { mkdir -p "$(dirname "$1")" && touch "$1" ; }' >> ~/.bashrc
$ source ~/.bashrc
$ mkfile ./fldr1/fldr2/file.txt
说明:
~/.bashrc
命令echo
文件的末尾
-p
标志用于创建嵌套文件夹,例如fldr2
~/.bashrc
命令source
文件
mkfile
功能创建文件答案 2 :(得分:1)
将此添加到〜/ .bashrc:
function mkfile() {
mkdir -p "$1" && touch "$1"/"$2"
}
保存,然后使其可用而无需重新启动或注销,请执行:$ source ~/.bashrc
或者您可以这样做:
$ mkdir folder && touch $_/file.txt
请注意,$ _ =文件夹
答案 3 :(得分:1)
mkdir -p Python/Beginner/CH01 && touch $_/hello_world.py
说明: -p->如果要创建父目录和子目录,请使用-p $ _->将其用于当前目录,我们以内联方式对其进行处理
答案 4 :(得分:0)
devnull' s answer提供了一个功能:
mkfile() { mkdir -p -- "$1" && touch -- "$1"/"$2" }
这个功能对我来说不起作用(我在WSL Ubuntu上运行bash 4.3.48),但是一旦我删除了双破折号就行了。所以,这对我有用:
echo 'mkfile() { mkdir -p "$1" && touch "$1"/"$2" }' >> ~/.bash_profile
source ~/.bash_profile
mkfile sample/dir test.file
答案 5 :(得分:0)
只需下面的简单命令即可。
mkdir a && touch !$/file.txt
Thx
答案 6 :(得分:0)
您可以创建一个函数,以sed
来解析参数;
atouch() {
mkdir -p $(sed 's/\(.*\)\/.*/\1/' <<< $1) && touch $1
}
,然后用一个参数执行它:
atouch B/C/D/myfile.txt
答案 7 :(得分:0)
您可以安装脚本;
pip3 install --user advance-touch
安装后,您可以使用ad命令
ad airport/plane/captain.txt
airport/
├── plane/
│ ├── captain.txt
答案 8 :(得分:0)
我在 Windows 10 机器上使用 git-bash 尝试了以下命令。 这对我有用。 假设我想创建一个名为 "Files" 的目录,在这个目录下我想有 "file1.txt,file2.txt,file3.txt" ..etc 文件
mkdir Files && touch $_/file1.txt $_/file2.txt $_/file3.txt
答案 9 :(得分:-2)
这可能有效:
mkdir {{FOLDER NAME}}
cd {{FOLDER NAME}}
touch {{FOLDER NAME}}/file.txt