Несколько месяцев назад у меня была точно такая же проблема, и в конце концов я просто написал инструмент, чтобы сделать это за меня. Когда я увидел это и обнаружил, что у кого-то другого был такой же зуд, я убрал его, чтобы кто-то другой, кроме меня, мог на самом деле заставить его работать, и закончил мой список дел. Теперь код готов: https://github.com/mwh/dragon
Чтобы получить его, запустите
git clone https://github.com/mwh/dragon.git
cd dragon
make
, и вы получите автономный исполняемый дракон
- вы можете переместить его куда угодно. make install
поместит его в $HOME/.local/bin
.
В любом случае, вы можете:
dragon *.jpg
получить простое окно с перетаскиваемыми кнопками для каждого из этих файлов:
Вы можете перетащить любой из них в браузер, файловый менеджер, редактор или в любое другое место, которое говорит по стандартному перетаскиваемому протоколу.
Если вы хотите пойти другим путем и перетащить вещи в , используйте --target
- они будут напечатаны на стандартном выводе или доступны для повторного перетаскивания, если вы используете --keep
также.
Для сборки вам понадобится Си-компилятор и заголовки разработки GTK+ 3 - если вы на Arch, то вы получите их просто установив GTK+, но на других дистрибутивах вам может потребоваться apt-get install build-essentials libgtk3-dev
или yum установить gtk3-devel
или аналогичный сначала. Кроме того, она полностью автономна, не содержит составных библиотек или чего-либо подобного, и вы можете просто поместить исполняемый файл туда, куда захотите.
Мой вариант использования - это в основном одноразовое перетаскивание всего лишь нескольких файлов (обычно только одного), без особой заботы о том, как они появятся, так что если это не совпадает с тем, что вы хотите, то Dragbox (которого я не видел до недавнего времени) все равно может быть лучше для вас. Буквально вчера я добавил поддержку использования его в качестве перетаскивающего устройства, так что эта часть с моей стороны не принесла много пользы. В остальном, однако, я использую ее успешно уже некоторое время. Есть и другие режимы и опции, описанные в файле readme.
.
Я подозреваю, что вы имеете в виду, что хотите, чтобы имя файла было включено в вывод uuencode
:
begin 644 path/to/the/file.pdf.Z
%=&5S=`H`
`
end
не включать путь / к /
.
Для этого вы хотите, чтобы второй аргумент, переданный в uuencode
, был базовым именем. Для этого вам нужно сделать это так:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -exec sh -c '
for file do
uuencode "$file" "$(basename "$file")"
done' sh {} +
Или, если ваш find
поддерживает -execdir
:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -execdir uuencode {} {} \;
Поддерживается ли ваш find
-printf
, вы могли бы сделать это с помощью:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -printf '%p\0%f\0' |
xargs -r0n2 uuencode