一尘不染

如果不存在,有没有办法使mv创建要移动到的目录?

linux

因此,如果我位于主目录中,并且想将foo.c移至〜/ bar / baz /
foo.c,但是这些目录不存在,则可以通过某种方式自动创建这些目录,以便您只需要输入

mv foo.c ~/bar/baz/

一切都会解决?看来您可以将mv别名为一个简单的bash脚本,该脚本将检查那些目录是否存在,如果不存在,将调用mkdir然后是mv,但是我想我会检查是否有人有更好的主意。


阅读 934

收藏
2020-06-03

共1个答案

一尘不染

这个单线(bash)怎么样:

mkdir --parents ./some/path/; mv yourfile.txt $_

分解:

mkdir --parents ./some/path

创建目录(包括所有中间目录),然后:

mv yourfile.txt $_

将文件移动到该目录($ _扩展到传递给上一个shell命令的最后一个参数,即:新创建的目录)。

我不确定这在其他shell中能发挥多大的作用,但可能会为您提供一些有关查找内容的想法。

这是使用此技术的示例:

$ > ls
$ > touch yourfile.txt
$ > ls
yourfile.txt
$ > mkdir --parents ./some/path/; mv yourfile.txt $_
$ > ls -F
some/
$ > ls some/path/
yourfile.txt
2020-06-03