我有一个跨平台构建工具链,它将一些文件夹复制到目的地。robocopy
我在 Windows 和rsync
macOS上使用,因为它们支持控制台进度输出。命令的形式如下:
robocopy "C:\Some\Source" "C:\Some\Destination" /MIR
rsync -a --progress --delete "/Some/Source/" "/Some/Destination"
Run Code Online (Sandbox Code Playgroud)
但现在我遇到了一种情况,我需要排除一些可能出现在源目录中的文件。如果它们以前存在于目的地,我需要将它们删除。rsync
有--delete-excluded
选项:
rsync -a --progress --delete-excluded --exclude '*.jpg' "/Some/Source/" "/Some/Destination"
Run Code Online (Sandbox Code Playgroud)
但我无法robocopy
使用以下选项进行这样的操作/XF
:
robocopy "C:\Some\Source" "C:\Some\Destination" /MIR /XF *.jpg
Run Code Online (Sandbox Code Playgroud)
robocopy
将旧的排除文件保留在目标位置。有没有办法让robocopy
行为像rsync
选项一样--delete-excluded
?我知道我可以稍后扫描目标树以使用另一个命令删除排除的文件,但我想这样做,robocopy
因为树确实很大,我想通过复制操作节省时间。
我有一个与键盘快捷方式相关联的脚本,当我触发快捷方式时,我希望出现一个通知,确认脚本已执行。
如何从脚本内部创建通知?
编辑
在 Linux 上,我曾经做过 command && notify-send "My message"