Rsync脚本错误“是一个目录”

Rsync脚本错误“是一个目录”

我通常rsync通过运行 bash 脚本将数据备份到外部驱动器。其中,说明如下:

#!/usr/bin/env bash
#Backup
#-r : recursive
#--size-only : ignore timestamp, use size
#-t : transfer modif times
#-v : verbose
#--progress : show transfers as they happen
#--delete-before : files to be deleted are done so before transfers
#-u : update; skip newer files on target
#-L : follow symlinks
#
rsync -r --size-only --progress --delete-before -t -v -u -L /home/user/Desktop/backup/ /media/guajardo/BCKPDRV/jomdir/

在我的桌面目录上, backup我有指向我想要同步的所有目录的符号链接。我最近将外部驱动器中的所有内容都移到了该目录中jomdir(以前都位于该驱动器的根目录中),现在当我运行脚本时出现错误 line 12: /media/user/BCKPDRV/jomdir: Is a directory。当一切都在根目录上时,这种情况不会发生。驱动器的。但是,当我在 bash 上运行上述命令但用相对路径(Desktop/...等)替换完整路径时,它会起作用;此外,当我修改脚本并使用~/Desktop/...等时,错误消失并rsync起作用。

关于为什么会发生这种情况有什么想法吗?请:我确实想继续使用,rsync因为我还有其他几个经常用于此类事情的脚本。

多谢!

编辑:正如我之前提到的,脚本的其余部分只是注释,所以我不会忘记每个选项的作用;尽管如此,它就在这里。

答案1

您发布的错误:line 12: /media/user/BCKPDRV/jomdir: Is a directory不是 rsync 错误,而是 shell 错误。 shell 认为在第 12 行,要执行上面的路径,但错误表明它不能执行该操作。它并没有rsync像你预期的那样将其作为一个论据。

如需更多帮助,您可能需要将实际的 bash 脚本剪切并粘贴到您的问题中,而不仅仅是您认为相关的部分。

相关内容