日期:2014-05-16  浏览次数:21040 次

cp -rf 拷贝丢失了一些文件
本帖最后由 insulted 于 2012-12-06 10:09:17 编辑
cp -rf 拷贝丢失了一些文件,磁盘空间够,权限也够,echo $?为141,求助啊!
------解决方案--------------------
如果空间够,权限也够,丢失的文件在源文件中也存在的话,有两种可能:
1。复制到的目的地有该文件夹,最好先删除掉
2。丢失的文件名可能有问题,或者Linux不能识别什么的啊!
以上为我揣测的!不足以信!
------解决方案--------------------
我的机器错误号知道131,你那个我看不到。
你可以输入命令:
cat /usr/include/asm-generic/errno.h
------解决方案--------------------

给你点人气吧!
------解决方案--------------------
141 error is Unknown error
------解决方案--------------------
你将原来cp不成功的文件单独cp的话,能成功吗?
------解决方案--------------------
重编cp命令,再加打印信息,很快找到出错的位置
------解决方案--------------------
引用:
引用:目前测试的情况是:
如果将源路径放得短一些,cp -rf就能成功!怀疑是cp的源路径过长了!
怀疑错了,手工建立了一个很深的目录,放文件,cp也能成功!
大家帮帮忙啊!cp的原理是什么?会不会是inode资源不够了?如何查inode资源占用情况啊?

我觉得不会,想查的话用statfs系统调用
------解决方案--------------------
cp -Rf 用大 R
------解决方案--------------------
引用:
引用:目前测试的情况是:
如果将源路径放得短一些,cp -rf就能成功!怀疑是cp的源路径过长了!
怀疑错了,手工建立了一个很深的目录,放文件,cp也能成功!
大家帮帮忙啊!cp的原理是什么?会不会是inode资源不够了?如何查inode资源占用情况啊?



df -i可以查看inode的使用情况
------解决方案--------------------
引用:
cp -rf /A/* /B/.  失败,141返回值;
如果将*替换成所有具体的文件和文件夹名称,就能成功:
cp -rf /A/a /B/.
cp -rf /A/b /B/.
cp -rf /A/c /B/.



初步怀疑可能是目录下文件太多,cp命令使用不了,改用find命令试试
find 源目录 -type f  -exec cp {} 目的目录 \;
------解决方案--------------------
cp -a 或者tar打包拷过去再解压