Я думаю, что вы должны делать что-то вроде приложений GUI. Моя идея сделать это состоит в том, чтобы написать две функции для копирования и вставки, где копирование записывает путь файлов, которые будут скопированы во временный файл, а вставка считывает эти пути и просто вызывает cpкоманду. Моя реализация (для помещения в .bashrcфайл) выглядит так:
function Copy {
touch ~/.clipfiles
for i in "$@"; do
if [[ $i != /* ]]; then i=$PWD/$i; fi
i=${i//\\/\\\\}; i=${i//$'\n'/$'\\\n'}
printf '%s\n' "$i"
done >> ~/.clipfiles
}
function Paste {
while IFS= read src; do
cp -Rdp "$src" .
done < ~/.clipfiles
rm ~/.clipfiles
}
Могут быть написаны лучшие сценарии для реализации этой идеи, я протестировал свой собственный, и он очень хорошо работает для файлов и папок (я не знаю, как xclipможет работать копирование папок !!)
Например:
/usr/local/dir1# Copy a.txt *.cpp
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Paste
/usr/local/dir1# Copy *.h *.cpp b.txt subdir1
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Paste
/usr/local/dir1# Copy a.txt b.txt
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Copy c.txt d.txt
/usr/local/dir2# cd /usr/local/dir3
/usr/local/dir3# Paste
Мне нравится эта идея. И с небольшими изменениями, вы могли бы даже реализовать функцию «вырезать» тоже.
Пабло Вентурино
@Gilles Не могли бы вы объяснить , почему вы заменили echoс printf?
Meysam
@Meysam Для работы даже под shopt -s xpg_echo.
Жиль "ТАК - перестань быть злым"
1
@Meysam printfпортативен и безопасен, пока echoнет. Вики Wooledge упоминает это кратко.
jw013
10
Я предлагаю Xclip. Я использую это все время для этого. но вам не нужен сценарий. просто используйте функции.
Я не вижу необходимости использовать эти сценарии, в частности, потому что, если вы делаете то, что я думаю, вы делаете, вы найдете скрипты, которые уже упоминались (в полезном блоге Linux Tidbits), раздражает, потому что они запрашивают ввод везде , где это возможно , просто использовать их, вопреки философии Unix.
Я предлагаю просто написать некоторые функции в ваш .bashrc:
чтобы использовать их, вам нужно apt-get install xclip(Debian, Ubuntu, Linux Mint и т. д.) или zypper in xclip(openSUSE, другие системы, основанные на .rpm) или какой-то эквивалент. программа должна быть доступна в любой системе, которую вы используете.
Вы можете использовать xclipкоманду для этого. Вы можете скачать Баш скрипты из этой ссылки и поставить псевдонимы bash cp2clipи bash clippasteв свой .bashrcфайл.
я имел в виду сохранить файлы в вашем домашнем каталоге и поместить два псевдонима в ваш псевдоним .bashrc cp2clip = 'bash /home/<username>/cp2clip.sh' и clippaste = 'bash /home/<username>/clippaste.sh' так Вы можете использовать их где угодно. Чтобы узнать больше об псевдонимах, вы можете увидеть man aliasили linfo.org/alias.html
echo
сprintf
?shopt -s xpg_echo
.printf
портативен и безопасен, покаecho
нет. Вики Wooledge упоминает это кратко.Я предлагаю Xclip. Я использую это все время для этого. но вам не нужен сценарий. просто используйте функции.
Я не вижу необходимости использовать эти сценарии, в частности, потому что, если вы делаете то, что я думаю, вы делаете, вы найдете скрипты, которые уже упоминались (в полезном блоге Linux Tidbits), раздражает, потому что они запрашивают ввод везде , где это возможно , просто использовать их, вопреки философии Unix.
Я предлагаю просто написать некоторые функции в ваш
.bashrc
:чтобы использовать их, вам нужно
apt-get install xclip
(Debian, Ubuntu, Linux Mint и т. д.) илиzypper in xclip
(openSUSE, другие системы, основанные на .rpm) или какой-то эквивалент. программа должна быть доступна в любой системе, которую вы используете.источник
Вы можете использовать
xclip
команду для этого. Вы можете скачать Баш скрипты из этой ссылки и поставить псевдонимыbash cp2clip
иbash clippaste
в свой.bashrc
файл.источник
man alias
или linfo.org/alias.html