Linux эквивалент команды windows cmd

Если вы работаете в системе на базе Linux, используйте cat вместо dd

cat source.img >/dev/destdisk

. Но на самом деле вам нужно учитывать скорость ввода-вывода вашего диски и шина данных, к которой они подключены: насколько быстро ваш вращающийся диск может доставлять данные, и скорость любого типа USB, который вы используете.

Итог: если вы были на 100% привязаны к процессору, возможно, что-то вы можете делать это в программном обеспечении, но здесь вы почти наверняка связаны с вводом-выводом.


Согласно Почему cat (1) работает быстрее, чем dd (1M) , утилита cat быстрее, чем dd , даже при использовании того же размера блока. (В статье объясняется, почему - очевидно, потому что cat использует mmap () , тогда как dd - нет.)

1
29.06.2018, 19:41
3 ответа

В оболочке bashоператор &&является логическим -и предназначен для управления процессом, позволяя запустить второй процесс, если первый процесс не завершился с ошибками. Двойной канал(||)делает то же самое, но это оператор ИЛИ, и он будет выполняться, если предыдущая команда НЕ была успешной.

Таким образом, данный файл с именем sample_fileс содержимым:

aaa
bbb
123
ccc
ddd

Команда

grep ccc sample_file >/dev/null && echo found || echo not found

Будет эхо "найдено" и вот это-

grep cow sample_file >/dev/null && echo found || echo not found

Будет эхо "не найдено"

Просто замените операторы эха своим назначением переменной.

2
27.01.2020, 23:10

Команда Windows сравнивает два файла с помощью команды fcи ищет в выводе сообщение «нет различий»; если мы видим это сообщение, тогда установите переменную equalв yes.

Команду unix cmpможно использовать для сравнения файлов, и она возвращает нулевой результат, если они совпадают, и мы можем проверить это напрямую, поэтому нет необходимости в функции «поиск вывода».

[[ -z "$(cmp file1 file2 2>&1)" ]] && equal=yes
3
27.01.2020, 23:10

Предполагая, что делают эти команды Windows, я бы сказал, что эквивалент в сценарии POSIX shбудет:

equal=no
cmp -s file1 file2 && equal=yes

, который установит для переменной equalзначение yes, если два файла могут быть прочитаны и имеют идентичное содержимое (байт -— -байт ).

В качестве альтернативы cmp -sв некоторых системах, в том числе на базе Linux -, можно использовать diff -q.diff -q(qдля тихий ), в отличие от большинстваcmp -s(sдля тихий)выдает сообщение об ошибке, если какой-либо из файлов не может быть прочитан. В то время как реализации GNU diffи cmpсначала проверяют, являются ли два файла путями к одному и тому же файлу (, включая жесткие или символические ссылки на один из других )или имеют разные размеры для сохранения необходимо прочитать их, реализация busyboxcmpне делает, аbusyboxdiffделает. Таким образом, в тех системах, где используется busybox, вы можете предпочесть diff -qиз соображений производительности.

9
27.01.2020, 23:10

Теги

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