所以,如果我在我的主目录中并且我想将 foo.c 移动到 ~/bar/baz/foo.c ,但这些目录不存在,有没有办法自动创建这些目录,这样你只需要输入
mv foo.c ~/bar/baz/
一切都会好起来的?似乎您可以将 mv 别名为一个简单的 bash 脚本,该脚本将检查这些目录是否存在,如果不存在,则调用 mkdir 然后调用 mv,但我想我会检查是否有人有更好的主意。
这个单线如何(在 bash 中):
mkdir --parents ./some/path/; mv yourfile.txt $_
打破它:
mkdir --parents ./some/path # if it doesn't work; try mkdir -p ./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