如何在一个Linux命令中制作目录和触摸文件?[已关闭]

kse8i1jr  于 2023-03-17  发布在  Linux
关注(0)|答案(3)|浏览(89)

**已关闭。**此问题为not about programming or software development。当前不接受答案。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题有关,您可以留下评论,说明在何处可以回答此问题。
2天前关闭。
Improve this question
例如,我运行cd../mkdir AAA enter和cd AAA enter和touch file.a file. b。我可以在一行中操作以上步骤吗?感谢您花时间,抱歉我是新手。我尝试了cd../mkdir AAA && touch file.a,它在工作目录中创建了文件。

cwtwac6a

cwtwac6a1#

假设:

  • 要创建一个新目录(但我们也假设该目录可能已经存在)
  • 将创建/接触一个或多个(空)文件

如果目标是做最少的输入量,我建议创建一个自定义函数。
一个(详细)示例:

mktouch() {
    local newdir="$1"                     # first arg is the new directory
    shift                                 # discard first arg

    mkdir -p -- "$newdir"                 # if $newdir already exists the "-p" says to ignore the 'directory already exists' error

    for newfile in "$@"                   # loop through rest of args and ...
    do
        touch -- "$newdir/$newfile"       # create file
    done
}

**注:**OP可将此函数定义添加到其登录脚本中(例如.profile.bashrc

试驾:

$ find dirA -type f
find: ‘dirA’: No such file or directory

$ mktouch dirA file.a file.b
$ find dirA -type f
dirA/file.a
dirA/file.b

$ mktouch dirA file.XYZ
$ find dirA -type f
dirA/file.a
dirA/file.b
dirA/file.XYZ
9lowa7mx

9lowa7mx2#

另一个选项可能是带有-m-D选项的GNU install命令:

for i in dirA/{foo.txt,bar.txt} ; do install -m 644 -D /dev/null "$i" ; done

创建目录:

ls 
dirA

目录内容:

ls dirA/
bar.txt  foo.txt
eoxn13cs

eoxn13cs3#

在其中创建目录和文件:

cd ../ && mkdir dirA && touch dirA/foo.txt && touch dirA/bar.txt

验证:

$ ls dirA

bar.txt foo.txt

相关问题