Я имею поиск сеть для ответа Linux на что-то как Teracopy (Windows)..., но ничто не мог найти подходящим.
Самые близкие вещи, которые я получил:
rsync
не опция.Кто-то может рекомендовать мне простой инструмент копии файла, который может поставить файлы в очередь для, копируют/перемещают/удаляют? Предпочтительно, если я могу перетащить от Наутилуса.
Если что-то вроде этого не существует, кто-то может сказать мне почему?... действительно ли я - единственный человек, которому нужно что-то вроде этого?
По моему опыту, выполнение нескольких копий одновременно в Linux действительно не уменьшает полную пропускную способность. Мое измерение пропускной способности основано на-P аргументе rsync. Мой особый случай отдельно копирует много папок, полных больших файлов прочь жесткого диска USB одновременно.
Таким образом, если Вы не копируете много вещей сразу, необходимо быть в порядке.
Я не знаю ни о чем как это для Linux (хотя но это вовсе не значит, что нет того где-нибудь). Программное обеспечение Linux имеет тенденцию быть записанным пользователями Linux. Опытные пользователи Linux не могут думать для создания инструмента как это, потому что, если они замечают какое-либо замедление копий во время сессии GUI, они, вероятно, переключатся на терминал и копию через командную строку.
Вот некоторые основные утилиты копирования командной строки, которые очень быстры и не должны влиять на Вашу настольную среду:
Я просто записал этот простой сценарий, который я назвал 'cpw', для решения этой проблемы.
Вы используете его точно так же, как Вы использовали бы CP... единственная разница - то, что это создает массив из любых процессов cpw, которые уже работают, когда это запускается и ожидает их для окончания перед передачей команд к CP. Таким образом это ведет себя как самоорганизующаяся очередь.
Можно продолжать добавлять фон cpw задания, но они не ступят друг на друга. Они выполнятся по одному.
Я уверен, что другие могут предложить улучшения.
#!/bin/bash
cpwpids=(`ps -ef | grep $USER | grep 'cpw' | grep -v grep | grep -v $$ | awk '{ print $2 }'`) #build an array of all cpw procs for this user that aren't this one.
cpwcnt=${#cpwpids[@]} # number of elemenets in the above array
cnt=$cpwcnt # counter to be decremented each pass
while [ $cnt -gt 0 ]
do
cnt=$cpwcnt
for i in "${cpwpids[@]}" # check if each pid has died yet
do
ps --pid $i >/dev/null
if [ $? -gt 0 ]
then
let "cnt -= 1"
fi
done
sleep 2
done
cp -v "$@" >> /tmp/cpw.log #log
Пример использования:
$ cpw -R /src/tree /dest/tree &