所以,如果我在我的主目录中,我想移动foo.c到~/bar/baz/foo.但是这些目录不存在,有没有办法自动创建这些目录,这样你就只需要输入

mv foo.c ~/bar/baz/ 

一切都会好起来吗?看起来你可以将mv别名为一个简单的bash脚本,该脚本将判断这些目录是否存在,如果不存在,将调用mkdir,然后调用mv,但我想我会判断一下是否有人有更好的 idea .

推荐答案

这一行怎么样(在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中能起到多大的作用,但它可能会给你一些关于寻找什么的 idea .

下面是一个使用这种技术的示例:

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

Linux相关问答推荐

我需要从 Ubuntu 中删除 .txt 文件中以白色间距分隔的行的白色间距

awk内部的变量操作

从父目录中删除目录而不删除父目录 (Linux)

在 Ubuntu 中,如何设置 Tomcat 9 以使用 Java 17?

如何为命令的所有选项启用无密码 sudo?

当接收端未从套接字读取时,通过 Unix 套接字发送的消息会发生什么情况?

如果 bash 中已经存在文件名,则创建新文件但添加数字

如何/在哪里可以找到要修复的 Linux 内核错误?

如何在 linux ElementaryOS 中修复 Genymotion,但未找到错误CXXABI_1.3.8

Linux中没有X.org的OpenGL

将以前忽略的目录添加到 Git 存储库

你如何在 C 中的 Linux 上进行非阻塞控制台 I/O?

将 AWK 结果分配给变量

在 linux 上查看文件大小

判断 VT-x 是否已激活而无需在 Linux 中重新启动?

如何在 Linux 中使用单行命令获取 Java 版本

是否有git sed或类似功能?

将所有文件扩展名转换为小写

如何让我的 Golang Web 服务器在后台运行?

将 BlueZ Stack 用作外设(广告商)