mv命令移动文件,但报告错误:无法统计此类文件或目录

约翰·马克·米切尔

我希望一个更有经验的一双眼睛会发现一些很明显,我很想念或将能够帮助我解决了错误mvrsync正在生产。迎接挑战吗?

基本思想:
我有一个bash脚本,可以在其中自动执行文件从一个目录到另一个目录的移动。

问题:
运行脚本时,定期从mv命令中收到以下错误
mv: cannot stat `/shares/directory with spaces/test file.txt': No such file or directoryvm命令的错误代码为1。更奇怪的是,有时文件移动实际上成功了。

另外,我在脚本中有一个逻辑分支,可以交替使用rsync(从与上述mv命令相同的本地文件系统源和目标移动/复制特定文件我收到与stat()系统调用相关的类似错误:
rsync: link_stat "/shares/directory with spaces/test file.txt" failed: No such file or directory (2) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]

运行脚本时,此错误并不总是很明显。有时,它会毫无问题地完成文件移动,而有时,当脚本连续运行几次时,它将一致地返回错误。

您还应该注意另外一个要素(并且我越来越怀疑这是困扰我的关键要素):目录/ shares /是一个受Dropbox安装监视的目录-表示已对其进行监视并通过Dropbox的安装进行镜像。在这一点上,我无法确定是否dropboxd以某种方式锁定了文件或类似文件,从而无法对其进行统计。需要明确的是,这些文件最终无需进一步干预即可从此状态中释放出来,并且是mv可用的。

代码:
mv -v --no-clobber "${SOURCEPATH}${item}" "${DESTINATIONPATH}${item}"

更多信息:
以下内容可能相关,也可能不相关:

  • mount 表示文件系统是ext4
  • 大概,所有权和权限应该成为问题,因为脚本是由root运行的。特别是在文件系统不是基于保险丝的情况下。
  • 路径中的基本“目录”(例如/ shares /)是指向同一文件系统上另一个目录的符号链接。
  • Linux的风格是Debian。

故障排除:
在尝试消除变量扩展或其内容的任何问题时,我尝试如下方式强制连接bash脚本:
mv -v --no-clobber "/shares/directory with spaces/test file.txt" "/new destination/directory with spaces/test file.txt"通过ls -al“ test file.txt”进行验证之后作为参考,权限为:-rw-r--r--
不幸的是,这也会导致相同的错误。

我可能想到的其他可能问题以及为排除这些问题所做的工作:

>>可能的问题: HDD慢(或驱动器处于低功耗模式)或外部USB驱动器
>>发现:驱动器都是设置为非驻留磁头的所有本地SATA磁盘。此外,即使强制从文件系统中进行一致的读取,也会发生相同的错误

>>可能的问题:非基于Linux,NFS或基于保险丝的文件系统
>>发现:否,源和目标位于同一本地文件系统上,并mount指示文件系统为ext4

>>可能的问题:文件路径中有空格或其他不可打印的字符
>>结果:已验证源路径和目标路径正确地用引号引起来

>>可能的问题:换行符转义后的继续问题(换行命令中\后面的空格)
>>发现:确保命令全部在一行上,仍然是相同的错误

>>可能的问题:遍历(在指定要移动的文件中使用*)
>>发现:否,每个文件均由路径和名称直接指定

>>可能的问题:使用本地路径导致路径混乱
>>发现:否,文件路径从/开始是完全限定的

>>可能的问题:文件实际上不在指定的路径中
>>发现:否,在通过执行脚本之前验证了文件是否存在ls -al

>>可能的问题: mv的--no-clobber导致问题
>>结果:不,尝试了一下,没有,同样的错误

>>可能的问题:只有通过Dropbox同步到文件系统创建的文件才是有问题的
>>发现:否,直接通过创建了本地文件touch new-local-file.txt,它也产生了相同的stat()错误

我的分析:产生类似的stat()错误
的事实使我相信:mvrsync

  • bash脚本中未考虑某些系统性的基础边界情况(例如,文件权限/所有权或文件繁忙);或者
  • mvrsync场景中,相同的错误困扰着我

预期的结果:
1.可以确定间歇性错误的根本原因。
2.根本原因可以解决或解决。
3.可以改进bash脚本以在错误发生时正常处理。

约翰·马克·米切尔

因此,通过更多的故障排除,我rsync在脚本中的前200行发现了一条有条件执行的错误语句(因此,行为似乎不一致)。rsync --archive ...语句/shares/作为其源目录传递,因此影响了/shares/directory with spaces/子目录。该子目录是mv我上面的帖子中提到的麻烦命令的$ {SOURCEPATH}

最终,这是--dry-runrsync --archive ...语句上的丢失标志,导致该脚本后来希望传递mv给处理的文件被践踏

感谢所有花时间阅读我的帖子的人。尽管我为自己和您的时间花在脚本中的错误上而感到沮丧,但令人放心的是知道:
-计算机不是非理性的
-我不是疯子
-没有邪恶的,根深蒂固的错误在linux文件系统中

对于那些由于您遇到的错误而在以后迷失了这篇文章的人cannot stat,请阅读上面的我的故障排除说明。大量研究进入了该列表。其中之一可能是您的问题。如果没有,请继续进行调试,并进行解释。祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

文件存在,但出现mv错误并显示:“ mv:无法统计'file.tar.gz':没有此类文件或目录”

来自分类Dev

mv:无法统计“ pencil.desktop”:没有此类文件或目录

来自分类Dev

mv:无法统计shell脚本中没有此类文件或目录

来自分类Dev

mv:无法统计“ filename_1_2_3”:没有此类文件或目录

来自分类Dev

cp:无法统计“路径/文件”:没有此类文件或目录

来自分类Dev

cp:无法统计“路径/文件”:没有此类文件或目录

来自分类Dev

mv:无法统计“coverage.txt”:没有这样的文件或目录

来自分类Dev

mv:无法统计“pencil.desktop”:没有这样的文件或目录

来自分类Dev

无法统计文件-c

来自分类Dev

无法统计日期:没有这样的文件或目录

来自分类Dev

bash脚本-tar无法统计:没有这样的文件或目录,由于先前的错误而以失败状态退出

来自分类Dev

Bash %%参数扩展无法统计文件

来自分类Dev

无法统计简历设备文件

来自分类Dev

无法统计到文件的符号链接

来自分类Dev

无法统计简历设备文件

来自分类Dev

sudo:无法统计/ etc / sudoers:没有这样的文件或目录-文件存在

来自分类Dev

sudo:无法统计/ etc / sudoers:没有这样的文件或目录-文件存在

来自分类Dev

SFTP错误消息“无法统计远程文件”中的“统计”是什么意思

来自分类Dev

tar退出“无法统计:目录中没有这样的文件”,为什么?

来自分类Dev

无法统计/ etc / sudoers:没有这样的文件或目录

来自分类Dev

ng2-test-seed无法统计-没有这样的文件或目录

来自分类Dev

tar退出“无法统计:目录中没有这样的文件”,为什么?

来自分类Dev

cp:无法统计`/vol/examples/tutorial/science.txt':没有这样的文件或目录

来自分类Dev

cp:无法统计“ / some / path / *”:没有这样的文件或目录

来自分类Dev

无法统计/ etc / sudoers:没有这样的文件或目录

来自分类Dev

tar:--exclude =“。git”:无法统计:没有这样的文件或目录

来自分类Dev

sudo:无法统计/ etc / sudoers:没有这样的文件或目录

来自分类Dev

安装:无法统计“%{sourcedir}/inventory”:没有这样的文件或目录:通过 OpenBuildService 构建 RPM

来自分类Dev

Ubuntu复制文件问题(无法统计文件)

Related 相关文章

  1. 1

    文件存在,但出现mv错误并显示:“ mv:无法统计'file.tar.gz':没有此类文件或目录”

  2. 2

    mv:无法统计“ pencil.desktop”:没有此类文件或目录

  3. 3

    mv:无法统计shell脚本中没有此类文件或目录

  4. 4

    mv:无法统计“ filename_1_2_3”:没有此类文件或目录

  5. 5

    cp:无法统计“路径/文件”:没有此类文件或目录

  6. 6

    cp:无法统计“路径/文件”:没有此类文件或目录

  7. 7

    mv:无法统计“coverage.txt”:没有这样的文件或目录

  8. 8

    mv:无法统计“pencil.desktop”:没有这样的文件或目录

  9. 9

    无法统计文件-c

  10. 10

    无法统计日期:没有这样的文件或目录

  11. 11

    bash脚本-tar无法统计:没有这样的文件或目录,由于先前的错误而以失败状态退出

  12. 12

    Bash %%参数扩展无法统计文件

  13. 13

    无法统计简历设备文件

  14. 14

    无法统计到文件的符号链接

  15. 15

    无法统计简历设备文件

  16. 16

    sudo:无法统计/ etc / sudoers:没有这样的文件或目录-文件存在

  17. 17

    sudo:无法统计/ etc / sudoers:没有这样的文件或目录-文件存在

  18. 18

    SFTP错误消息“无法统计远程文件”中的“统计”是什么意思

  19. 19

    tar退出“无法统计:目录中没有这样的文件”,为什么?

  20. 20

    无法统计/ etc / sudoers:没有这样的文件或目录

  21. 21

    ng2-test-seed无法统计-没有这样的文件或目录

  22. 22

    tar退出“无法统计:目录中没有这样的文件”,为什么?

  23. 23

    cp:无法统计`/vol/examples/tutorial/science.txt':没有这样的文件或目录

  24. 24

    cp:无法统计“ / some / path / *”:没有这样的文件或目录

  25. 25

    无法统计/ etc / sudoers:没有这样的文件或目录

  26. 26

    tar:--exclude =“。git”:无法统计:没有这样的文件或目录

  27. 27

    sudo:无法统计/ etc / sudoers:没有这样的文件或目录

  28. 28

    安装:无法统计“%{sourcedir}/inventory”:没有这样的文件或目录:通过 OpenBuildService 构建 RPM

  29. 29

    Ubuntu复制文件问题(无法统计文件)

热门标签

归档