如何通过dbus-send等CLI命令调用Nemo的CopyFile等方法
调用org.Nemo.FileOperations下DBus方法的CLI命令示例
Nemo文件管理器通过DBus提供了org.Nemo.FileOperations接口,包含CopyFile、CopyURIs、MoveURIs三个文件操作方法,以下是使用dbus-send调用这些方法的具体命令:
1. CopyFile(单文件复制)
该方法用于复制单个文件,参数依次为:源文件路径、目标路径、是否覆盖已存在文件。
命令示例:
dbus-send --session --type=method_call --dest=org.Nemo.FileOperations /org/Nemo/FileOperations org.Nemo.FileOperations.CopyFile string:"/home/user/Documents/source.txt" string:"/home/user/Desktop/dest.txt" boolean:true
- 最后一个参数
boolean:true表示覆盖目标文件,设为false则不覆盖 - 路径需使用绝对路径,确保当前用户有读写权限
2. CopyURIs(批量文件复制)
该方法用于批量复制多个文件,参数依次为:源文件URI列表、目标目录URI、是否覆盖。
命令示例:
dbus-send --session --type=method_call --dest=org.Nemo.FileOperations /org/Nemo/FileOperations org.Nemo.FileOperations.CopyURIs array:string:"file:///home/user/Documents/file1.pdf","file:///home/user/Pictures/photo.jpg" string:"file:///home/user/Backup" boolean:true
- 所有路径必须使用
file://开头的URI格式 - 多个源URI用逗号分隔,包裹在
array:string:后 - 目标需指定为目录的URI
3. MoveURIs(批量文件移动)
该方法用于批量移动多个文件,参数格式与CopyURIs一致。
命令示例:
dbus-send --session --type=method_call --dest=org.Nemo.FileOperations /org/Nemo/FileOperations org.Nemo.FileOperations.MoveURIs array:string:"file:///home/user/Downloads/installer.exe","file:///home/user/Downloads/archive.zip" string:"file:///home/user/Temp" boolean:true
额外说明
- 如果不确定接口或方法是否存在,可以执行以下命令查看接口详情:
dbus-send --session --dest=org.Nemo.FileOperations --type=method_call /org/Nemo/FileOperations org.freedesktop.DBus.Introspectable.Introspect
- 路径中的特殊字符(如空格)需要转义,或用URI编码(空格替换为
%20)
内容的提问来源于stack exchange,提问作者Ahmad Ismail
相关产品推荐
相关产品推荐

