我尝试使用cp -p
命令,因为这里建议的另一个答案:Linux: copy and create destination dir if it does not exist,但由于某些原因我在Mac上的bash shell上,它实际上并没有复制父文件夹结束了。
答案 0 :(得分:1)
如果您愿意,您还可以使用函数创建自己的copydeep例程。有几种方法可以使其可用。第一个是您的~/.bashrc
文件,第二个是在shell中导出函数。在您的bashrc中,您可以简单地声明该函数以使其可用。要从命令行导出函数,只需输入函数(或从您喜欢的编辑器复制/粘贴),然后使用export -f funcitonname
导出函数。 (击)
注意我还没有在OSX上测试,只是Linux,但只要你有类似的导出功能,它或类似的东西应该可以工作。
快速破解名为cpd
的copydeep函数。 (您也可以使用较长的名称输入该名称,例如copydeep
和alias cpd='copydeep'
)
输入/粘贴功能:
$ cpd () {
[ -z $1 ] || [ -z $2 ] && {
printf "usage: cpd file /path/path1/etc...\n";
return 1
}
mkdir -p "$2" || {
printf "error: unable to create directory '%s' (check write permission)\n" "$2";
return 1
}
cp "$1" "$2"
}
导出它:
$ export -f cpd
测试/用途:
$ cpd tmp.c this/long/path
$ ls -l this/long/path/
-rw-r--r-- 1 david david 1161 Apr 13 00:01 tmp.c
$ cpd
usage: cpd file /path/path1/etc...
注意:这只是用于最小输入测试的基本副本的示例。 mkdir
和cp
的使用和具体测试和选项取决于您。当然,第三个选项只是将函数的内容保存为脚本,使其可执行并能够在您的路径中找到,并根据需要调用它。