Linux cp复制文件但不复制其内容

Linux cp复制文件但不复制其内容,linux,bash,permissions,debian,cp,Linux,Bash,Permissions,Debian,Cp,在bash脚本中使用cp命令将文件从一个装载点复制到另一个装载点时遇到一些困难。为了完整起见,我在脚本的最后执行以下命令,强制复制两个日志文件: cp -f /home/test1.log /media/usb0/ cp -f /home/test2.log /media/usb0/ 我遇到的问题是,当我复制这两个文本文件时,文件在新位置创建,但副本是空白文件。检查原始文件表明它们不是空的,并且包含了它们应该包含的所有信息。奇怪的是,如果我将其他文件从目标复制到源,那么复制操作可以完美地工作,

在bash脚本中使用cp命令将文件从一个装载点复制到另一个装载点时遇到一些困难。为了完整起见,我在脚本的最后执行以下命令,强制复制两个日志文件:

cp -f /home/test1.log /media/usb0/
cp -f /home/test2.log /media/usb0/
我遇到的问题是,当我复制这两个文本文件时,文件在新位置创建,但副本是空白文件。检查原始文件表明它们不是空的,并且包含了它们应该包含的所有信息。奇怪的是,如果我将其他文件从目标复制到源,那么复制操作可以完美地工作,换句话说,下面的操作每次都可以工作

cp -f /media/usb0/test3.log /home/
每次复制后,我都会检查cp命令的退出代码,在所有情况下,cp都会以代码0退出,这表示复制成功。我认为问题可能与权限有关,因此请确保在装入/media/usb0时将该驱动器的umask设置为0000,并临时将目标目录的权限更改为777,以查看它是否可以工作,但结果相同


有人能提供一个关于为什么会发生这种情况的想法吗?我完全不知道为什么这会失败,特别是因为在假定成功复制后,原始文件和副本不同。提前谢谢你的帮助

胡思乱想:你是否在不卸载U盘的情况下卸下U盘?如果在脚本末尾正确卸载(或至少调用
sync
),行为是否会改变?谢谢您的建议!我没有尝试在脚本末尾调用sync,因为我在删除驱动器之前卸载了它。不过,我会在周一回到办公室后尝试将同步添加到脚本中,看看这是否会有所不同。再次感谢!在
dmesg
输出中是否有任何可疑之处?我记得没有看到,但是我会在周一早上再次检查。我会用我发现的更新帖子。谢谢修好了!很好的呼叫Wintermute,在复制操作完成后添加
sync
。现在它100%都能工作,再次感谢!