linux - 如果需要,如何在一行中触摸文件和 mkdir

标签 linux perl

我需要touch一个绝对文件名的文件,例如:/opt/test/test.txt,但我不确定系统中是否存在/opt/test。所以代码应该与此类似:

if (-d '/opt/test') {
    touch '/opt/test/test.txt';
} else {
    mkdir -p '/opt/test';
    touch '/opt/test/test.txt'
}

有没有更好的方法来简化代码?我希望有一些系统命令可以只用一行完成同样的工作。

最佳答案

mkdir B && touch B/myfile.txt

或者,创建一个函数:

   mkfile() { 
    mkdir -p $( dirname "$1") && touch "$1" 
   }

使用 1 个参数执行它:文件路径。说:

mkfile B/C/D/myfile.txt

将在目录 B/C/D 中创建文件 myfile.txt。

关于linux - 如果需要,如何在一行中触摸文件和 mkdir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28296411/

相关文章:

c++ - 在 C/C++ 中查找可用的网络接口(interface)?

c++ - 在 Linux 下如何为可执行文件分配堆栈?

linux - 从大写文件和目录创建带有小写名称的符号链接(symbolic link)

html - 如何从阻塞操作发送 WebSocket 事件? (需要设计建议)

perl XML::简单属性空白

perl - 如何通过 OTRS 中的 Web 服务(SOAP 或 REST)将配置项链接/获取到工单

Linux Bash 脚本 : How to get file without path?

perl getopt::文件的长路径

xml - 如何用原始标签名称替换 XML::Simple 中的 <opt> 标签?

linux - 为什么我无法在本地主机上访问 Xampp 的 phpmyadmin?禁止访问。