【问题标题】:Why copy command is not working when using file paths?为什么使用文件路径时复制命令不起作用?
【发布时间】:2021-08-09 03:02:21
【问题描述】:

我的复制命令有问题。

cp ../teste/env/test/x.tar ../../../teste2/file

文件夹存在,x.tar 文件也存在。当我启动脚本时,我位于不同的文件夹中,这就是我在开头创建 ../ 的原因。

它一直给我这个错误:cp: cannot create regular file ‘../../../teste2/file’: No such file or directory

值得注意的是,teste 和 teste2 文件夹都在同一个目录中。

这是文件夹 teste 树:teste tree

这是文件夹 test2 树:teste2 tree

非常感谢您的帮助!

【问题讨论】:

  • 您是否检查了文件和文件夹的权限/所有权?该文件夹是否可能由另一个用户或根用户拥有,并且当前用户可能无法访问/看到它?您可以尝试cp ../teste/env/test/x.tar ../../../teste2/.cp ../teste/env/test/x.tar ../../../. 来调试它吗?
  • 我使用 sudo,并且我已经对它们进行了 chmod 以获得写入和读取权限。我很困惑
  • 尝试运行ls -al ../../../teste2/,以检查您是否可能算错了../前缀的数量。
  • 得到正确的输出
  • 如果我运行 cd ../teste cd env/test 然后 cp x.tar ../../../teste2/file 它工作正常;

标签: linux shell path sh


【解决方案1】:

我尝试从您的 cmets 重建您可能拥有的文件树。我认为以下调用可能有效。你只是误算了相对路径。

cp ../teste/env/test/x.tar ../teste2/file

相对路径始终从当前工作目录计算而来,即您调用命令的文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-31
    • 2021-08-14
    • 1970-01-01
    • 2011-06-14
    • 2018-01-27
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    相关资源
    最近更新 更多