Скопируйте и вставьте файл/каталог из командной строки

Как последнее прибежище Вы могли разъединить микрофон от платы...

17
27.02.2012, 15:58
3 ответа

Я думаю, что необходимо сделать что-то как приложения 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
17
27.01.2020, 19:47
  • 1
    Это работает как очарование! –  Meysam 04.02.2012, 15:55
  • 2
    мне нравится эта идея. И с небольшими модификациями, Вы могли даже реализовать функцию "сокращения" также. –  Pablo Venturino 04.02.2012, 18:03
  • 3
    @Gilles Мог Вы объяснять, почему Вы заменили echo с printf? –  Meysam 05.02.2012, 16:53
  • 4
    @Meysam Для работы даже под shopt -s xpg_echo. –  Gilles 'SO- stop being evil' 05.02.2012, 18:46
  • 5
    @Meysam printf является портативным и безопасным в то время как echo не. Wiki Wooledge упоминает это кратко. –  jw013 05.02.2012, 23:59

я предлагаю xclip., я использую все это время для этого. но Вам не нужен сценарий. просто используйте функции.

я не вижу потребности использовать эти сценарии, в частности, потому что, если Вы делаете то, что я думаю, что Вы делаете, Вы уже найдете сценарии упомянутыми (на полезном блоге лакомых кусочков Linux) раздражающий, потому что они предлагают Вам вход по мере возможности, только для использования их, вопреки философии Unix.

я предлагаю просто вписать в некоторые функции Ваш .bashrc:

clip2file () {
  xclip -out -selection clipboard >> $@
  echo -e "\n" >> $@
}

file2clip () {
  cat $@ | xclip -selection clipboard
}

для использования их Вы должны apt-get install xclip (Debian, Ubuntu, Linux Mint, и т.д.) или zypper in xclip (openSUSE, другие находящиеся в .rpm системы) или некоторый эквивалент. программа должна быть доступной в любой системе, которую Вы используете.

10
27.01.2020, 19:47

Можно использовать xclip команда для этого. Можно загрузить сценарии удара с этой ссылки и поместить псевдонимы для bash cp2clip и bash clippaste в Ваш .bashrc файл.

3
27.01.2020, 19:47
  • 1
    @what Вы подразумеваете под псевдонимами? –  ixtmixilix 04.02.2012, 13:24
  • 2
    , который я имел в виду, сохраняет файлы в Вашем корневом каталоге и поместил два псевдонима в Ваш cp2clip псевдонима .bashrc =, 'колотят / домой / <имя пользователя>/cp2clip.sh' и clippaste ='bash / домой / <имя пользователя>/clippaste.sh', таким образом, можно использовать их где угодно. Для чтения больше о псевдонимах, Вы видите man alias или linfo.org/alias.html –  harish.venkat 04.02.2012, 13:30

Теги

Похожие вопросы