Sao chép tập tin từ dòng lệnh vào clipboard


18

Trong trình quản lý tệp GUI, có thể chọn một vài tệp, nhấn Ctrl-C (được cho là sao chép thông tin về các tệp vào bảng tạm), sau đó điều hướng đến thư mục khác và nhấn Ctrl-V, sau đó sẽ sao chép các tệp vào đó danh mục.

Là một thử nghiệm, sau khi sao chép tệp trong trình quản lý tệp, có thể chuyển sang trình chỉnh sửa văn bản - nhấn Ctrl-V sẽ dán danh sách tên tệp tuyệt đối. Quá trình ngược lại (sao chép danh sách các tệp từ trình soạn thảo văn bản và dán chúng vào trình quản lý tệp) không hoạt động, được cho là do các nguyên tử đích khác nhau

Mục tiêu của bài tập là có thể sao chép một số tệp từ dòng lệnh, ví dụ

find ${PWD} -name "*.txt" | xclip <magic parameters>

sau đó chuyển sang trình quản lý tệp và sao chép tất cả chúng vào một thư mục bằng File-> Paste.

Vì vậy, câu hỏi là: xclipTôi cần chỉ định tham số nào của (hoặc chương trình khác) để trình quản lý tệp nhận ra lựa chọn là danh sách các tệp và bật mục menu Paste của nó?

Ngoài ra, có một công cụ cấp thấp nào cho phép kiểm tra nội dung của lựa chọn X và xem nó hiện chứa dữ liệu gì không?

Câu trả lời:


12

Có, về cơ bản, bạn cần cung cấp lựa chọn CLIPBOARD như

  • text/uri-list với nội dung

    /path/to/file1
    /path/to/file2
    
  • application/x-kde-cutselectionhoặc x-special/gnome-copied-filescó nội dung copy\nfile://$path1\nfile://$path2\0hoặccut\nfile://$path1\nfile://$path2...\0

Với xclipbạn có thể đạt được điều này với một cái gì đó như

find "$PWD" -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

Tôi cũng thấy điều này loliclip lệnh trông đầy hứa hẹn, nhưng dù tôi có thể lấy các giá trị, tôi đã không thể lưu trữ chúng và họ đã lấy từ loliclipbằng cách pcmanfmthành công.

Bạn cũng có thể thực hiện nó trong một vài dòng perl-tk.


Ok, sau khi sửa text/uri-listđổi biến thể hoạt động với tôi - Tôi có thể sao chép nội dung từ dòng lệnh và dán tệp vào trình quản lý tệp Cá heo. Nó thậm chí không yêu cầu file://tiền tố, làm cho lệnh hoạt động tốt find. Tôi đã chỉnh sửa câu hỏi của bạn để thêm lệnh hoạt động cho tôi trong KDE - bất kỳ ai cũng có thể kiểm tra nó trong Gnome hoặc ở nơi khác không?
Serge

Cảm ơn đã chỉnh sửa. Có vẻ như file://không cần thiết với pcmanfmmột trong hai (mặc dù pcmanfm không bao gồm chính nó). Tôi cho rằng một số ký tự đặc biệt (ít nhất là LF) phải được mã hóa URI.
Stéphane Chazelas

Vâng. Tôi có thể xác nhận rằng bạn cần sử dụng file:///new%0Alinecho các tệp chứa ký tự dòng mới, mặc dù mọi ký tự khác (bao gồm cả không phải ASCII trong bất kỳ mã hóa nào) dường như đều ổn (ít nhất là với pcmanfm)
Stéphane Chazelas

1

Tại sao không làm findđiều đó cho bạn?

find ${PWD} -name "*.txt" -exec cp {} /full/path \; && gnome-open /full/path &

EDIT: từ những gì tôi hiểu từ man xclip: nó chỉ xử lý văn bản, không phải tệp hoặc thư mục.


Chủ yếu là vì đây là một thử nghiệm, mặc dù tôi nghĩ rằng "sao chép các tập tin vào clipboard ngay bây giờ, quyết định nơi bạn muốn dán chúng sau này" sẽ là một cách hữu ích để thực hiện.
Serge
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.