cp
[root@file nutch-0.9]# cp -f urls-resume /nosuchdirectory/hi.txt cp: cannot create regular file `/nosuchdirectory/hi.txt': No such file or directory
我不知道你用cp也能做到。
你可以用mkdir ..
mkdir -p /var/path/to/your/dir
<强>编辑 参见lhunath的回答来合并cp.
没有这样的选择。你能做的就是在复制文件之前运行mkdir - p
我做了一个非常酷的脚本,你可以用来复制文件在不存在的位置
#!/bin/bash if [ ! -d "$2" ]; then mkdir -p "$2" fi cp -R "$1" "$2"
现在只需保存它,赋予它权限并使用
./cp-improved SOURCE DEST
我放了-R选项,但这只是一个草案,我知道它可以,你会在很多方面改进它。希望对你有所帮助
你也可以使用命令find:
find
find ./ -depth -print | cpio -pvd newdirpathname
要扩展基督教的回答,唯一可靠的方法是将mkdir和cp结合起来:
mkdir
mkdir -p /foo/bar && cp myfile "$_"
顺便说一句,当您只需要在现有层次结构中创建一个目录时,rsync可以在一个操作中完成。我非常喜欢用rsync代替cp,事实上:
rsync
rsync -a myfile /foo/bar/ # works if /foo exists but /foo/bar doesn't. bar is created.
cp -Rvn /source/path/* /destination/path/ cp: /destination/path/any.zip: No such file or directory
刚才我看到了xxxxxxxx:没有这样的文件或目录,因为我的空闲空间用完了。没有错误信息。
同上:
ditto -V /source/path/* /destination/path ditto: /destination/path/any.zip: No space left on device
一旦释放空间cp -Rvn /source/path/* /destination/path/按预期工作
cp -Rvn /source/path/* /destination/path/
Rsync是工作!
#file: rsync -aqz _vimrc ~/.vimrc #directory: rsync -aqz _vim/ ~/.vim
mkdir -p `dirname /nosuchdirectory/hi.txt` && cp -r urls-resume /nosuchdirectory/hi.txt