$ type xclip
xclip is aliased to 'xclip -selection clipboard'
$ xclip -o
target filename with spaces
$ mv original_filename `xclip -o`
mv: target ‘spaces’ is not a directory

我试过先用\_(''uu'表示空间)替换空格,但它也不起作用。我哪里做错了?谢谢。

最佳答案

把我的评论变成一个答案。
backticks中的命令被扩展到执行该命令打印的任何内容(到STDOUT)。所以:

mv original_filename `xclip -o`

扩展到:
mv original_filename target filename with spaces

然后被处决。要将xclip -o的结果分组为单个参数,应在其周围加引号:
mv original_filename "`xclip -o`"

因此,它扩展为:
mv original_filename "target filename with spaces"

注意backticks are deprecated应该使用$()来代替:
mv original_filename "$(xclip -o)"

关于linux - 与xclip一起使用mv/cp时文件名包含空格的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29897087/

10-10 20:10