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 更加健壯。
  • 需要 eval 是因為讀取的回傳值周圍加了引號。

至於為什麼你得到''(讀取的空字串)。我猜這是因為拖放不起作用,這不是 shell 的功能,而是終端機和檔案管理器的功能。您使用什麼終端程式?

相關內容