Необходимо указать столбец конца, также:
$ sort -k1,1 text.txt
a 1
a 11
A 1
Заключить страницу справочника вида GNU в кавычки:
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line)
Можно сделать GNU dd
покажите, что Вы прогрессируете - для заключения в кавычки страницы справочника:
Отправка USR1 сигнализирует к выполнению 'dd', процесс заставляет ее распечатать статистику ввода-вывода к стандартной погрешности и затем продолжить копировать.
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
Schily dd
(sdd) имеет подобную опцию и использует SIGQUIT по умолчанию (Ctrl+\
).
Относительно Вашего второго вопроса: Да, dd
просто копируют все блоки, если используется файловой системой или не - который занимает секунды DEVICE_CAPACITY/TRANSFER_RATE.
Если Вы не хотите копировать блоки неиспользуемого диска, можно использовать tar
:
# cd /mnt/sda
# tar -c -f - . | tar -C /mnt/sdb -x -f -
GNU tar
также имеет опции синхронизации:
# tar -c -f - . --totals=SIGQUIT | tar -C /mnt/sdb -x -f - \
--totals --totals=SIGQUIT
Таким образом Вы получаете статистику чтения-записи при ударе Ctrl+\
и в конце.
Другая возможность состоит в том, чтобы использовать parted
или gparted
для копирования файловой системы - который должен быть сделан эффективным способом с файловыми системами, из которых оно имеет достаточно знания. По крайней мере, gparted
должен отобразить хорошее графическое диалоговое окно прогресса.
Возможно, можно использовать ddrescue /dev/sda /dev/sdb
которые поддерживают ошибки и имеют индикатор выполнения
-f
флаг для GNU ddrescue для перезаписи устройства назначения
– charlesbridge
21.12.2011, 14:30
Я предлагаю, чтобы Вы использовали pv
программа (это находится на repos всех дистрибутивов, которые я знаю). Это даст Вам хороший индикатор выполнения.
$dd if=/dev/sda |pv -s 80g |dd of=/dev/sdb
с -s
Вы добавляете сумму исходного prtition/disk, Вы - копия ( if
в команде dd). Если Вы не поместили бы -s
аргумент это просто дает Вам движущуюся панель, чтобы указать, что данные перемещаются, но не дал бы Вам сколько.
конечно, добавьте sudo
если Вам нужно.
cat
, дважды: можно просто записать </dev/sda pv -s 80g >/dev/sdb
.
– Gilles 'SO- stop being evil'
21.12.2011, 04:16
Ctrl+
?Ctrl+\
? Нет, это отправляет SIGQUIT. Нет никакого ключа для SIGHUP. Более легкое, и обычно больше устойчивого способа скопировать файлы в системе Linuxcp -a . /mnt/sdb
, илиrsync -aP . /mnt/sdb
если Вы хотите индикатор хода выполнения. – Gilles 'SO- stop being evil' 21.12.2011, 04:19Ctrl+backslash
SIGQUIT - перепутал это - я обновлю вопрос.cp -a
не является портативным - GNUcp
имеет-a
но это не находится в POSIX. Корректная реализацияcp -a
должен работать, а такжеtar
канал (использование по модулю--totals
опция) - но почему это должно быть более устойчиво? – maxschlepzig 21.12.2011, 10:51cp -a
на основе опыта несколько лет назад, передавая корневые каталоги людей со склонностью к тому, чтобы использовать расширенные функции чего-либо, чего они коснулись между файловыми системами, которые не поддерживались тем же вариантом Unix. GNUcp -a
по NFS не вызвал жалобы.tar
дросселируемый на файлах с количеством жесткой ссылки> 1, чей путь был> 100 байтов.pax
пропущенные названные сокеты и несколько других причуд. Я забываю то, что другие решения я попробовал. Я помню некоторых не сохраняющих времена доступа к файлу, также. – Gilles 'SO- stop being evil' 21.12.2011, 18:46