Answers:
desgua的答案是正确而简单的方法,但是如果您需要一种可行的方法呢?POSIX 定义cp
不带--parent
标志,因此它不可能在所有系统上都起作用。
一种选择是如果它已安装在系统上,则用Python编写:
#!/usr/bin/env python3
from os import makedirs
from os.path import exists,basename
from shutil import copyfile
from sys import argv
if len(argv) < 3:
print('Not enough args',file=stderr)
exit(1)
filename = basename(argv[2])
dirs = argv[2].replace(filename,'')
makedirs(dirs)
copyfile(argv[1],argv[2])
这样工作:
$ ./mkdircp.py /etc/passwd $HOME/foodir/bardir/passwd.copy
$ stat --printf "%F\n" $HOME/foodir/bardir/passwd.copy
regular file
$ head -n 1 $HOME/foodir/bardir/passwd.copy
root:x:0:0:root:/root:/bin/bash
您可以使用;轻松键入两个命令。例如:
mkdir folder; cp file.html folder
它应该工作。
the_file
,则需要/
在新目录路径的末尾添加a 。