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"

Я удалил путь к read (возможно, вам это не понадобится (read — встроенная функция bash, и я не могу найти ее в /usr/binили /bin)

Важные изменения в последней строке:

  • Параметр -t, за которым следует целевой каталог, делает cp более надежным.
  • eval необходим из-за кавычек, заключенных вокруг возвращаемого при чтении значения.

Что касается того, почему вы получаете '' (пустая строка из read). Я предполагаю, что это из-за того, что перетаскивание не работает, это не функция оболочки, а терминала и файлового менеджера. Какую программу терминала вы используете?

Связанный контент