Вы можете:
[[ $var = +([[:alnum:]]) ]]
Это будет работать в реализациях AT&T ksh и zsh
ksh
, но явно не в на основе pdksh
. Это работает в zsh -o kshglob
(например, когда zsh
вызывается как ksh
) или bash -O extglob
.
+ (...)
- это ksh
подстановочный знак для , одного или нескольких . [[: alnum:]]
- это любой символ, который считается буквенно-цифровым в текущей локали (в любом алфавите, не обязательно только в латинском алфавите).
Если вы хотите ограничиться английскими буквами и цифрами, предполагая, что переменная LC_ALL
не установлена, вы можете сделать:
LC_COLLATE=C; [[ $var = +([a-zA-Z0-9]) ]]
Если нет:
[[ $var = +([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]) ]]
Это:
LC_ALL=C; [[ $var = +([[:alnum:]]) ]]
Также должно работать даже если он меняет значение символов.Поскольку символы, которые будут содержать байты, которые в противном случае соответствуют alnums ASCII (например, £ в GB18030, который закодирован как 81 30 84 35, где 30 также является ASCII 0), также будут содержать байты, которые не находятся в ASCII (например, 81 84 для £), и все кодировки в данной системе должны согласовывать кодировку символов в переносимой кодировке, которая включает в себя все английские буквенно-цифровые символы.
Также обратите внимание, что в локали UTF-8, ksh93u + (по крайней мере) в настоящее время имеет ошибку, заключающуюся в том, что if $ var
содержит последовательности байтов, которые не образуют допустимые символы, но эти байты соответствуют alnums. в наборе символов ISO-8859-1, тогда они будут рассматриваться как alnums
. Например, $ 'A \ xe9B'
будет считаться буквенно-цифровым, потому что 0xe9 - это é в ISO-8859-1. (U + 00E9 - это é
, но кодировка é в UTF-8 - 0xc3 0xa9, а не 0xe9).
Просто dd
или cat
весь файл устройства, например /dev/sdb
, в файл и наоборот.
Вы можете клонировать весь диск с USB-накопителя с постоянной активной системой на диск как минимум такого же размера.
Это просто, если существует таблица разделов MSDOS (MBR).
Существует осложнение, если существует таблица разделов GUID (GPT ), а размер целевого диска не точно такой же(не один единственный байт должно быть другим ). Недостаточно, чтобы номинальный размер совпадал (с размером, указанным снаружи привода ).
В этом случае необходимо также восстановить резервную копию таблицы разделов. Вы можете сделать это с помощьюgdisk
или проще с помощью сценария оболочки gpt-fix
, который использует gdisk
.
Вы можете создать постоянный живой диск, используяmkusb
и операционные системы Ubuntu, Debian(и операционные системы, созданные на основе Ubuntu или Debian, где структура загрузки не слишком сильно изменена ). Процесс будет автоматическим, и будет использоваться весь диск. Будет раздел для сохранения с файловой системой ext4
и раздел для переноса файлов туда и обратно между вашей системой Linux и Windows с файловой системой NTFS (и несколько небольших разделов ).
gpt-fix
встроена в mkusb
. Гибкие альтернативы клонированию
Существует встроенная -система резервного копирования для постоянно работающей системы, созданной mkusb
, поэтому вы можете создавать резервные копии только содержимого диска casper-rw
. Эта система адаптирована -для Ubuntu,и создает сжатый tar-файл, tarball.
Для Debian вы можете сделать соответствующие вещи «вручную»,
Вы можете восстановить ту же постоянную активную систему,
Вы можете создать новый постоянный живой диск (, возможно, другого размера ), но из того же живого iso-файла Ubuntu или Debian с помощью
mkusb
Вы можете перейти на новый постоянный активный диск (, возможно, другого размера)из новой версии того же живого варианта Ubuntu или Debian(среды рабочего стола )от
/home
в разделе сохранения в архив. mkusb
/home
содержимого каталога» архива в раздел для сохранения. Таким образом, вы можете сохранить пользовательские настройки, а также личные файлы, но вам придется повторно -установить программные пакеты и общие настройки системы (, например, в/etc
).