X11
หากใช้ X11 (GUI ที่ใช้กันมากที่สุดในระบบปฏิบัติการ Unix หรือ Linux แบบดั้งเดิม) เพื่อคัดลอกเนื้อหาของไฟล์ไปยังตัวเลือก X11 CLIPBOARD โดยไม่แสดงผลคุณสามารถใช้ยูทิลิตี้xclip
หรือxsel
xclip -sel c < file
หรือ:
xsel -b < file
เพื่อจัดเก็บเนื้อหาของfile
เป็นตัวเลือก CLIPBOARD X11
โปรดทราบว่าควรจัดเก็บโดยใช้การเข้ารหัส UTF-8 ไม่เช่นนั้นการวางจะไม่ทำงานอย่างถูกต้อง หากfile
มีการเข้ารหัสโดยใช้ชุดอักขระอื่นคุณควรแปลงเป็น UTF-8 ก่อนเช่น:
iconv -f latin1 -t utf8 | xclip -sel c
สำหรับไฟล์ที่เข้ารหัสในlatin1 / iso8859-1
ในการจัดเก็บเป็น CUT_BUFFER (แอปพลิเคชันบางรายการยังคงถูกถามเช่นxterm
เมื่อไม่มีสิ่งใดอ้างถึงการเลือก CLIPBOARD หรือ Primary X และไม่จำเป็นต้องมีกระบวนการทำงานเพื่อให้บริการเหมือนกับการเลือก) แม้ว่าคุณจะไม่ต้องการหรือ จำเป็นต้องใช้ที่ในปัจจุบัน:
xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"
(ลบอักขระบรรทัดใหม่ต่อท้ายออกจากfile
)
หน้าจอ GNU
GNU screen
มีreadbuf
คำสั่งให้เลื่อนเนื้อหาของไฟล์ไปยังบัฟเฟอร์ copy-paste (ซึ่งคุณวางด้วย^A]
) ดังนั้น:
screen -X readbuf file
Apple OS / X
แม้ว่า Apple OS / X สามารถใช้ X11 ได้ ไม่ได้เป็นค่าเริ่มต้นเว้นแต่คุณจะเรียกใช้แอปพลิเคชัน X11 คุณจะสามารถใช้xclip
หรือxsel
มี OS / X ควรซิงโครไนซ์ตัวเลือก X11 CLIPBOARD กับบัฟเฟอร์ของบอร์ด OS / X แต่นั่นเป็นการเสียเปล่าที่จะเริ่มต้นเซิร์ฟเวอร์ X11 สำหรับสิ่งนั้น
บน OS / X คุณสามารถใช้pbcopy
คำสั่งเพื่อเก็บเนื้อหาตามอำเภอใจไว้ในบัฟเฟอร์บอร์ด :
pbcopy < file
(การเข้ารหัสอักขระของไฟล์ถูกคาดหวังให้เป็นโลแคล)
เปลือกหอย
เชลล์ส่วนใหญ่มีบัฟเฟอร์การคัดลอกวางของตัวเอง ในโหมด emacs การดำเนินการตัดและคัดลอกจัดเก็บข้อความที่คัดลอก / ตัดลงบนสแต็กที่คุณดึง / วางด้วยCtrl-Yและวนรอบด้วยAlt+Y
zsh CUTBUFFER / killring
ในzsh
สแต็กจะถูกเก็บไว้ใน$killring
อาร์เรย์และด้านบนของสแต็กใน$CUTBUFFER
ตัวแปรแม้ว่าตัวแปรเหล่านั้นจะใช้ได้เฉพาะจากวิดเจ็ต Zsh Line Editor (zle) และวิดเจ็ตพิเศษสองสามตัวเป็นวิธีที่ต้องการจัดการกับสิ่งเหล่านั้น
เนื่องจากสิ่งเหล่านี้พร้อมใช้งานผ่าน ZLE เท่านั้นการทำด้วยคำสั่งจึงค่อนข้างซับซ้อน:
zmodload zsh/mapfile
zle-line-init() {
if [ -n "$FILE_TO_COPY" ]; then
zle copy-region-as-kill $mapfile[$FILE_TO_COPY]
unset FILE_TO_COPY
fi
}
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A
zle-line-init
เครื่องมือพิเศษจะถูกดำเนินการครั้งเดียวในช่วงเริ่มต้นของแต่ละพร้อมรับคำสั่งใหม่ หมายความว่าไฟล์จะถูกคัดลอกในพรอมต์ถัดไปเท่านั้น ตัวอย่างเช่นหากคุณ:
file-copy file; sleep 2
ไฟล์จะถูกคัดลอกหลังจาก 2 วินาที