Myślę, że powinieneś zrobić coś takiego jak aplikacje GUI. Moim pomysłem na zrobienie tego jest napisanie dwóch funkcji dla Kopiuj i Wklej, gdzie Kopiowanie zapisuje ścieżkę plików do skopiowania do pliku tymczasowego, a Wklej czyta te ścieżki i po prostu wywołuje cppolecenie. Moja implementacja (do umieszczenia w .bashrcpliku) jest jak poniżej:
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
}
Lepsze skrypty można napisać dla wdrożenia tego pomysłu, przetestowałem swój własny i działa on bardzo dobrze dla plików i folderów (nie wiem, jak xclipmożna kopiować foldery !!)
Na przykład:
/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
Podoba mi się ten pomysł. A przy niewielkich modyfikacjach można nawet wdrożyć funkcję „wycinania”.
Pablo Venturino
@Gilles Czy mógłbyś wyjaśnić, dlaczego otrzymuje echoz printf?
Meysam,
@Meysam Aby pracować nawet pod shopt -s xpg_echo.
Gilles „SO- przestań być zły”
1
@Meysam printfjest przenośny i bezpieczny, podczas gdy echonie jest. Wiki Wooledge krótko o tym wspomina .
jw013
10
sugeruję xclip. używam tego cały czas. ale nie potrzebujesz skryptu. po prostu użyj funkcji.
nie widzę potrzeby korzystania z tych skryptów, w szczególności, ponieważ jeśli robisz to, co myślę, robisz, okaże się, że skrypty już wspomniane (na pomocnym blogu linux tidbits) są denerwujące, ponieważ proszą cię o podanie, tam gdzie to możliwe , po prostu używać ich, w przeciwieństwie do filozofii unix.
proponuję po prostu napisać kilka funkcji w swoim .bashrc:
aby z nich skorzystać, musisz apt-get install xclip(Debian, Ubuntu, Linux Mint itp.) lub zypper in xclip(openSUSE, inne systemy oparte na .rpm) lub jakiś równoważny. program powinien być dostępny na każdym używanym systemie.
miałem na myśli zachować pliki w katalogu domowym i umieścić dwa aliasy w aliasie .bashrc cp2clip = 'bash / home / <nazwa użytkownika> /cp2clip.sh' i clippaste = 'bash / home / <nazwa użytkownika> /clippaste.sh', więc możesz ich używać w dowolnym miejscu. Aby dowiedzieć się więcej na temat aliasów można zobaczyć man aliaslub linfo.org/alias.html
echo
zprintf
?shopt -s xpg_echo
.printf
jest przenośny i bezpieczny, podczas gdyecho
nie jest. Wiki Wooledge krótko o tym wspomina .sugeruję xclip. używam tego cały czas. ale nie potrzebujesz skryptu. po prostu użyj funkcji.
nie widzę potrzeby korzystania z tych skryptów, w szczególności, ponieważ jeśli robisz to, co myślę, robisz, okaże się, że skrypty już wspomniane (na pomocnym blogu linux tidbits) są denerwujące, ponieważ proszą cię o podanie, tam gdzie to możliwe , po prostu używać ich, w przeciwieństwie do filozofii unix.
proponuję po prostu napisać kilka funkcji w swoim
.bashrc
:aby z nich skorzystać, musisz
apt-get install xclip
(Debian, Ubuntu, Linux Mint itp.) lubzypper in xclip
(openSUSE, inne systemy oparte na .rpm) lub jakiś równoważny. program powinien być dostępny na każdym używanym systemie.źródło
Możesz użyć
xclip
do tego polecenia. Można pobrać skrypty bash z tego linka i umieścić na aliasybash cp2clip
ibash clippaste
do swojego.bashrc
pliku.źródło
man alias
lub linfo.org/alias.html