Je pense que vous devriez faire quelque chose comme le font les applications GUI. Mon idée pour cela est d'écrire deux fonctions pour Copier et Coller, où Copier écrit le chemin des fichiers à copier dans un fichier temporaire et Coller lit ces chemins et appelle simplement la cpcommande. Mon implémentation (à mettre en .bashrcfichier) est comme ci-dessous:
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
}
De meilleurs scripts pourraient être écrits pour implémenter cette idée, j'ai testé les miens et cela fonctionne très bien pour les fichiers et les dossiers (je ne sais pas comment cela xclippourrait fonctionner pour copier des dossiers !!)
Par exemple:
/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
@Meysam Pour travailler même sous shopt -s xpg_echo.
Gilles 'SO- arrête d'être méchant'
1
@Meysam printfest portable et sûr alors qu'il echone l'est pas. Le wiki Wooledge le mentionne brièvement.
jw013
10
je suggère xclip. je l'utilise tout le temps pour ça. mais vous n'avez pas besoin d'un script. utilisez simplement des fonctions.
je ne vois pas la nécessité d'utiliser ces scripts, en particulier, parce que si vous faites ce que je pense que vous faites, vous trouverez les scripts déjà mentionnés (sur le blog utile de linux tidbits) ennuyeux car ils vous invitent à entrer dans la mesure du possible , juste de les utiliser, contrairement à la philosophie unix.
je suggère juste d'écrire quelques fonctions dans votre .bashrc:
pour les utiliser, vous devez apt-get install xclip(Debian, Ubuntu, Linux Mint, etc.) ou zypper in xclip(openSUSE, autres systèmes basés sur .rpm) ou un équivalent. le programme doit être disponible sur le système que vous utilisez.
Vous pouvez utiliser la xclipcommande pour cela. Vous pouvez télécharger des scripts bash à partir de ce lien et mettre des alias pour bash cp2clipet bash clippastedans votre .bashrcfichier.
je voulais dire garder les fichiers dans votre répertoire personnel et mettre deux alias dans votre alias .bashrc cp2clip = 'bash / home / <username> /cp2clip.sh' et clippaste = 'bash / home / <username> /clippaste.sh' afin vous pouvez les utiliser n'importe où. Pour en savoir plus sur les alias, vous pouvez voir man aliasou linfo.org/alias.html
echo
avecprintf
?shopt -s xpg_echo
.printf
est portable et sûr alors qu'ilecho
ne l'est pas. Le wiki Wooledge le mentionne brièvement.je suggère xclip. je l'utilise tout le temps pour ça. mais vous n'avez pas besoin d'un script. utilisez simplement des fonctions.
je ne vois pas la nécessité d'utiliser ces scripts, en particulier, parce que si vous faites ce que je pense que vous faites, vous trouverez les scripts déjà mentionnés (sur le blog utile de linux tidbits) ennuyeux car ils vous invitent à entrer dans la mesure du possible , juste de les utiliser, contrairement à la philosophie unix.
je suggère juste d'écrire quelques fonctions dans votre
.bashrc
:pour les utiliser, vous devez
apt-get install xclip
(Debian, Ubuntu, Linux Mint, etc.) ouzypper in xclip
(openSUSE, autres systèmes basés sur .rpm) ou un équivalent. le programme doit être disponible sur le système que vous utilisez.la source
Vous pouvez utiliser la
xclip
commande pour cela. Vous pouvez télécharger des scripts bash à partir de ce lien et mettre des alias pourbash cp2clip
etbash clippaste
dans votre.bashrc
fichier.la source
man alias
ou linfo.org/alias.html