Tôi đã nhận được một tệp trên máy tính để bàn, tên tệp làrec.html. Để sao chép tệp, tôi bấm vào tệp và nhấn cmd + c.
Bây giờ làm thế nào tôi sẽ làm điều tương tự bằng cách sử dụng thiết bị đầu cuối?
Tôi đã nhận được một tệp trên máy tính để bàn, tên tệp làrec.html. Để sao chép tệp, tôi bấm vào tệp và nhấn cmd + c.
Bây giờ làm thế nào tôi sẽ làm điều tương tự bằng cách sử dụng thiết bị đầu cuối?
Câu trả lời:
Nếu tôi hiểu đúng câu hỏi, những gì bạn đang theo đuổi là pbcopy
và pbpaste
.
Mở một thiết bị đầu cuối và làm:
$ cat ~/Desktop/ded.html | pbcopy
Bây giờ tập tin đó là trong clipboard.
Để đặt nó ở một nơi khác, nghĩa là, để dán nó, hãy làm:
$ pbpaste > ~/Documents/ded.html
Bây giờ bạn nên có một bản sao của.html.html ngồi trong ~ / Tài liệu.
cat ~/.emulator_console_auth_token | auth <read_content>
?
Câu trả lời của Lri đang đi đúng hướng, nhưng nó có một vài sai sót: không cần sử dụng Finder ( the clipboard
là một phần của OSA StandardAdditions ) và đưa ra một run
trình xử lý là cách đáng tin cậy hơn nhiều để truyền các đối số từ dòng lệnh (từ 10,4). Việc thực hiện cả hai thay đổi này giúp đơn giản hóa rất nhiều các chương trình thoát khỏi phạm vi cần phải được thực hiện để vào chương trình trong một trình bao.
Đây là phiên bản của tôi (được bọc trong một hàm shell. Bạn có thể đặt nó vào (ví dụ) của bạn .bashrc
để làm cho nó có sẵn trong các vỏ của bạn):
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
Một tệp đã được đặt vào bảng tạm với tập lệnh này sau đó có thể được dán trong Finder để sao chép tệp vào thư mục khác.
osascript cũng có thể được sử dụng như một trình thông dịch băm (kể từ 10.5). Đặt cái này trong một tập tin (ví dụ file-to-clipboard
)
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
Làm cho tập tin thực thi ( chmod +x /path/to/where/ever/you/put/file-to-clipboard
). Sau đó chạy nó như vậy:
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
Nếu nó được lưu trữ trong một thư mục trong PATH, thì bạn có thể bỏ qua đường dẫn đến tệp script script.
set the clipboard to {one,two}
(mặc dù một chương trình AppleScript khác có thể trích xuất thành công danh sách). Các lệnh clipboard của StandardAdditions có thể bị giới hạn ở các mục đơn lẻ.
Không có cách nào để đạt được những gì bạn đang cố gắng thực hiện bằng cách sử dụng dòng lệnh. Mặc dù Apple cung cấp pbcopy
và pbpaste
các công cụ để cho phép sao chép văn bản cơ bản, bạn không thể sử dụng các công cụ này để sao chép tệp theo nghĩa bạn đang tìm kiếm.
Không đi sâu vào quá nhiều chi tiết kỹ thuật, khi bạn 'sao chép' một tệp trong Finder bằng cách sử dụng ⌘C, bạn không thực sự sao chép chính tệp đó, chỉ tạo một tham chiếu đến tệp trên bảng tạm và đánh dấu nó là một tham chiếu tệp. Khi một ứng dụng nhận được tài liệu tham khảo này khi bạn dán, nó có trách nhiệm sắp xếp mọi thứ, tìm ra những gì bạn đã dán và cuối cùng, làm việc với tệp khi nó thấy phù hợp. Về bản chất, khi bạn sao chép một tệp trong Finder, nó sẽ lưu đường dẫn đến tệp theo một cách nhất định vào một bảng tạm nhất định và khi bạn dán, nó sẽ nhận được đường dẫn tệp đó và biết cách tạo một tệp mới bằng cách sử dụng nội dung của cái cũ (sao chép một tập tin vào bảng tạm, xóa nó, cố gắng dán nó vào một nơi khác và xem điều gì xảy ra, ví dụ).
Theo nghĩa sao chép và dán này, các công cụ có sẵn không đủ để làm những gì bạn cần. Như boehj đã đề xuất, bạn có thể cố gắng sao chép nội dung của tệp cũ sang tệp mới, nhưng điều này sẽ chỉ hoạt động tốt cho các tệp văn bản. Bất kỳ tệp nhị phân nào bạn nhận được sẽ bị hỏng (hãy thử làm điều này với một hình ảnh - nó sẽ bị hỏng).
Dòng lệnh truyền thống sẽ khiến bạn thất bại theo cách này, nhưng bạn có thể xem nếu bạn muốn thực hiện điều này trong AppleScript, sau đó gọi nó thông qua dòng lệnh với osascript
.
pbcopy
và pbpaste
sẽ hoạt động với tệp .html, nhưng đó chỉ là vì nó chỉ là một tệp văn bản.
pbcopy -help
, bạn nhận được một dòng không xứng đáng sản xuất NSLog()
chỉ cần lặp lại 'pbcopy -help'
. Nó giúp trở thành một lập trình viên để hiểu điều này, đó là lý do tại sao tôi cảm thấy cần phải hòa nhập.
Hàm bên dưới chỉ hoạt động với một tệp duy nhất chứ không phải với nhiều tệp. Nó yêu cầu GNU readlink
mà bạn có thể cài đặt bằng cách chạy brew install findutils
.
copy(){ osascript -e{'on run{a}','set the clipboard to posix file a',end} "$(greadlink -f -- "$1")";}
Chỉnh sửa: Tôi đã xóa tell app "Finder"
khối.
Chỉnh sửa 2: Hoàn nguyên về phiên bản hỗ trợ các đường dẫn tương đối.
Đây là một tập lệnh Shell / Bash đơn giản. Chỉ cần dán nó vào .bashrc
tập tin của bạn (hoặc tương tự):
file-to-clipboard() {
if [ -z "$1" ]; then
echo "file path/name:"
read FILE
else
FILE="$1"
fi
pbcopy < "$FILE"
}
Với sự hỗ trợ của tập tin tương đối:
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'
}
chạy clip_img path-to-file
để sao chép hình ảnh vào clipboard và path-to-file
có thể là tương đối. Các tập tin có thể là tập tin jpeg hoặc png.
Bạn có thể sử dụng cat 'originfile'> 'Destinationfile' trên các môi trường unix;
sao chép Destinationfile Destinationfile trên windows.