linux - 有没有办法让mv创建要移动的目录,如果它不存在?
所以,如果我在我的主目录中并且我想将foo.c移动到〜/ bar / baz / foo.c,但那些目录不存在,是否有某种方法可以自动创建这些目录,以便 你只需输入
mv foo.c ~/bar/baz/
一切都会成功吗? 看起来你可以将mv改为一个简单的bash脚本,它会检查这些目录是否存在,如果不存在则会调用mkdir然后调用mv,但我想我会检查是否有人有更好的想法。
12个解决方案
215 votes
这个单行(在bash中)怎么样:
mkdir --parents ./some/path/; mv yourfile.txt $_
打破这种情况:
mkdir --parents ./some/path
创建目录(包括所有中间目录),之后:
mv yourfile.txt $_
将文件移动到该目录($ _展开到传递给前一个shell命令的最后一个参数,即:新创建的目录)。
我不确定这在其他炮弹中会有多大作用,但它可能会给你一些关于要寻找什么的想法。
以下是使用此技术的示例:
$ > touch yourfile.txt
yourfile.txt
$ > mkdir --parents ./some/path/; mv yourfile.txt $_
$ > ls -F
some/
$ > ls some/path/
<
linux - 有没有办法让mv创建要移动的目录,如果它不存在?所以,如果我在我的主目录中并且我想将foo.c移动到〜/ bar / baz / foo.c,但那些目录不存在,是否有某种方法可以自动创建这些目录,以便 你只需输入mv foo.c ~/bar/baz/一切都会成功吗? 看起来你可以将mv改为一个简单的bash脚本,它会检查这些目录是否存在,如果不存在则会调用mkdir然后调用mv,...