Копіювання файлів з командного рядка в буфер обміну


18

У файловому менеджері GUI можна вибрати кілька файлів, натисніть Ctrl-C (який нібито копіює інформацію про файли у буфер обміну), потім перейдіть до іншої папки та натисніть Ctrl-V, який потім скопіює файли в цю каталог.

Як експеримент, після копіювання файлів у файловий менеджер можна перейти до текстового редактора - натискаючи Ctrl-V, там вставляється список абсолютних імен. Зворотний процес (копіювання списку файлів з текстового редактора та вставлення їх у файловий менеджер) не працює, що, мабуть, пов'язано з різними атомами цілі

Мета вправи - вміти копіювати, наприклад, деякі файли з командного рядка

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

потім перейдіть до файлового менеджера і скопіюйте їх у каталог за допомогою File-> Paste.

Отже, питання: Які параметри xclip(або іншої програми) мені потрібно вказати, щоб менеджер файлів розпізнавав виділення як список файлів та активував його пункт меню Вставити?

Як варіант, чи існує інструмент низького рівня, який би дозволив перевірити вміст вибору X і побачити, які дані в ньому зараз містяться?

Відповіді:


12

Так, в основному вам потрібно буде запропонувати вибір CLIPBOARD або як

  • text/uri-list із вмістом

    /path/to/file1
    /path/to/file2
    
  • application/x-kde-cutselectionабо x-special/gnome-copied-filesзі змістом copy\nfile://$path1\nfile://$path2\0абоcut\nfile://$path1\nfile://$path2...\0

З цим xclipти можеш досягти чогось подібного

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

Я також знайшов цю loliclip команду , яка виглядає багатообіцяючою, але , хоча я міг би отримати значення, я не був в змозі зберігати їх і вони витягуються з loliclipшляху pcmanfmуспішно.

Ви також повинні мати можливість реалізувати це в декількох рядках perl-tk.


Ок, після певного розробки text/uri-listваріант для мене спрацював - я можу скопіювати матеріали з командного рядка та вставити файли в диспетчер файлів Dolphin. Тут навіть не потрібні file://префікси, завдяки яким команда добре працює find. Я редагував ваше запитання, щоб додати команду, яка працює для мене в KDE - чи може хтось перевірити її в Gnome чи деінде?
Сергій

Дякуємо за редагування Схоже, що з цим file://не потрібно pcmanfm(хоча pcmanfm і сам включає його). Я припускаю, що деякі спеціальні символи (як мінімум, LF) повинні бути кодованими URI.
Стефан Хазелас

Так. Я можу підтвердити, що вам потрібно використовувати file:///new%0Alineфайли, що містять символи нового рядка, хоча будь-який інший символ (включаючи не-ASCII в будь-якому кодуванні) здається нормальним (принаймні з pcmanfm)
Stéphane Chazelas

1

чому б просто не змусити findзробити це за тебе?

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

EDIT: з того, що я розумію man xclip: він обробляє лише текст, а не файли та каталоги.


Переважно тому, що це експеримент, хоча я вважаю, що "скопіюйте файли в буфер обміну зараз, вирішіть, куди ви хочете вставити їх пізніше", було б корисним способом вчинити.
Сергій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.