我在桌面上有一个文件,文件名为ded.html。要复制文件,请单击文件,然后按cmd + c。
现在我如何使用终端做同样的事情?
我在桌面上有一个文件,文件名为ded.html。要复制文件,请单击文件,然后按cmd + c。
现在我如何使用终端做同样的事情?
Answers:
如果我理解正确的问题,那么您追求的是pbcopy
和pbpaste
。
打开终端并执行以下操作:
$ cat ~/Desktop/ded.html | pbcopy
现在该文件在剪贴板中。
要将其放置在其他位置,即粘贴,请执行以下操作:
$ pbpaste > ~/Documents/ded.html
现在,您应该在〜/ Documents中有一个ded.html的副本。
cat ~/.emulator_console_auth_token | auth <read_content>
?
Lri的答案是朝着正确的方向前进的,但是它有两个缺陷:无需使用Finder(the clipboard
是StandardAdditions OSAX的一部分),并且提供run
处理程序是从命令行传递参数的更可靠的方法。 (自10.4开始)。进行这两项更改将大大简化将程序输入Shell所需的“转义”操作。
这是我的版本(包装在shell函数中,您可以将其放入(例如).bashrc
使其在shell中可用):
file-to-clipboard() {
osascript \
-e 'on run args' \
-e 'set the clipboard to POSIX file (first item of args)' \
-e end \
"$@"
}
file-to-clipboard ~/Desktop/ded.html
然后可以将使用此脚本放置在剪贴板上的文件粘贴到Finder中,以将文件复制到另一个文件夹。
osascript也可以用作hash-bang解释器(自10.5开始)。将此放入文件(例如file-to-clipboard
)
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
使文件可执行(chmod +x /path/to/where/ever/you/put/file-to-clipboard
)。然后像这样运行它:
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
如果将其存储在PATH中的目录中,则可以省略“脚本”文件的路径。
set the clipboard to {one,two}
(尽管另一个AppleScript程序可以成功提取列表)。所述StandardAdditions剪贴板命令可以被限于单个项目。
无法使用命令行来实现您要执行的操作。尽管Apple提供了pbcopy
和pbpaste
工具来允许基本的文本复制,但是您不能使用这些工具以所需的方式复制文件。
无需过多讨论技术细节,使用来在Finder中“复制”文件时⌘C,实际上并没有复制文件本身,只是在剪贴板上引用了该文件并将其标记为文件引用。当应用程序在粘贴时收到此引用时,它有责任对内容进行整理,弄清楚粘贴的内容,并最终根据需要使用文件。本质上,当您在Finder中复制文件时,它会以某种方式将文件的路径保存到特定的剪贴板中,并且在粘贴时,它会接收到该文件路径,并且知道使用该文件的内容来创建新文件。旧文件(将文件复制到剪贴板,将其删除,尝试将其粘贴到其他位置,然后看看会发生什么)。
在复制和粘贴的意义上,手头上可用的工具不足以完成您所需的工作。正如boehj建议的那样,您可以尝试将旧文件的内容复制到新文件中,但这仅适用于文本文件。您获取的所有二进制文件都将被损坏(尝试对图像进行操作–它已损坏)。
传统的命令行将使您失败,但是您可以查看是否要在AppleScript中执行此操作,然后通过使用命令行来调用它osascript
。
pbcopy
并且pbpaste
可以使用.html文件,但这仅是因为它恰好是文本文件。
pbcopy -help
,您将得到一条非生产性的NSLog()
行,只需重复一次即可'pbcopy -help'
。它有助于成为一个程序员了解这一点,这就是为什么我觉得有必要插入内容。
这是一个简单的Shell / Bash脚本。只需将其粘贴到您的.bashrc
文件(或类似文件)中:
file-to-clipboard() {
if [ -z "$1" ]; then
echo "file path/name:"
read FILE
else
FILE="$1"
fi
pbcopy < "$FILE"
}
支持相对文件:
clip_img() {
osascript -e 'on run argv' \
-e 'set currentDir to do shell script "pwd"' \
-e 'set the clipboard to (read POSIX file (POSIX path of (currentDir as text & (first item of argv) )) as JPEG picture)' \
-e 'end run' "/$1"
# osascript -e 'clipboard info'
}
运行clip_img path-to-file
以将图像复制到剪贴板,并且path-to-file
可能是相对的。该文件可以是jpeg或png文件。
您可以在Unix环境中使用cat'originfile'>'destinationfile';
在Windows上复制originfile destinationfile。