cp:fts_open:没有这样的文件或目录错误

cp:fts_open:没有这样的文件或目录错误

我有这个脚本:

    #!/bin/sh -x

    /bin/echo "Drag folder into Terminal and hit return ->"
    /usr/bin/read folderLocation

    /bin/cp -R "$folderLocation" /Users/my/Desktop/

返回结果:

+ /bin/cp -R '' /Users/my/Desktop/
cp: fts_open: No such file or directory

知道这是为什么吗?

感谢您的见解!

答案1

我在 Debian Gnu/Linux 上让它工作了:

#!/bin/sh -x

/bin/echo "Drag folder into Terminal and hit return ->"
read folderLocation

eval "cp -R  -t '/home/my/Desktop' $folderLocation"

/usr/bin我删除了 read 的路径(你可能不必(read 是 bash 的内置路径,在or中找不到它/bin

最后一行是重要的变化:

  • -t 选项后跟目标目录使得 cp 更加健壮。
  • 由于 read 的返回值被引号括起来,因此需要 eval。

至于为什么会得到 ''(读取时为空字符串)。我猜是因为拖放功能不起作用,这不是 shell 的功能,而是终端和文件管理器的功能。你使用的是什么终端程序?

相关内容