Предположим, у вас есть разные файлы в каталоге: one.txt, two.jpg, three.pdf, four.jpg и т. Д. Вы хотите скопировать их все в буфер обмена из командной строки. Что-то вроде copyclipboard *
. Как вы это делаете?
На основании этого ответа , который решает для конкретного случая, но имеет тип файла, жестко закодированный в сценарии. Интересно, есть ли более общее решение?
Фактически, команда, которую я разместил в исходном вопросе, была применима к широкому кругу ситуаций:
find ${PWD} -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list
единственное требование - генерировать первую команду (в данном случае find
) список абсолютных имен файлов для файлов, которые необходимо скопировать. Если вы отметите man find
, вы увидите, что вы можете изменить команду, чтобы найти файлы, созданные позже определенной даты, больше определенного размера, имеющие определенные разрешения, соответствующие определенному регулярному выражению и т. Д.
Если хотите иметь команду быстрого доступа для конкретного случая использования - eq копируя файлы из текущего каталога и ниже в соответствии с определенной маской, вы можете написать короткий скрипт:
#!/bin/sh
find "$PWD" -name "$1" | xclip -i -selection clipboard -t text/uri-list
и вызвать его с помощью
cb "*.txt"
(где cb
- имя сценария)
Это для того, чтобы ускорить какой-то рабочий процесс, который у вас есть, или для какого-либо сценария?
Что я обычно делаю, так это то, что при входе в папку с файлами, которые я хочу скопировать, я запускаю nautilus .
, чтобы получить файл браузер. Проблема рабочего процесса, которую я вижу при копировании прямо из терминала, заключается в том, что вам все равно нужно перейти в папку, куда вы хотите вставить файлы позже.
Пожалуйста, прокомментируйте, если я что-то здесь упускаю.