bash redirect sub -команда оболочки stdout, <<<$ (команда )vs. < < (команда)

Думаю, теперь я вижу основную проблему, это просто:

«Как мне зашифровать диск, на котором уже есть данные?»

Есть только один безопасный ответ, используете ли вы LUKS, eCryptFS, EncFS или вообще что угодно:

  1. Сделайте резервную копию данных в другом месте
  2. Зашифровать диск (, стирая/перезаписывая существующие на нем резервные копии данных)
  3. Скопируйте данные на теперь зашифрованный диск
  4. Убедитесь, что вы можете расшифровать (разблокировать )диск и что данные не изменились

В вашем случае, если вы хотите использовать LUKS на резервном диске и , если резервный диск заполнен менее чем наполовину , вы можете:

  1. создать свободный раздел на половине диска
  2. зашифровать свободный раздел с помощью LUKS
  3. скопируйте ваши данные из незашифрованного раздела в раздел LUKS
  4. удалить незашифрованный раздел
  5. затем разверните раздел LUKS на весь диск...

НО одна из этих операций по сжатию и увеличению раздела, скорее всего, потребует перемещения данных, и, чтобы быть в безопасности, вы должны сначала сделать резервную копию, поэтому вы все равно застряли на предыдущем шаге «Резервное копирование данных».

То же самое происходит, если вы рассматриваете шифрование LUKS -в -решение места (lukspic или cryptsetup -повторное шифрование )-, если это важные данные, сначала создайте резервную копию.

  • Поскольку это уже резервный диск, вы можете использовать исходный диск в качестве псевдо -резервной копии и просто стереть весь диск,используйте LUKS, а затем сделайте новую резервную копию с исходного диска

Или, если вас не волнует, будут ли удалены данные, попробуйте зашифровать -в -решении места или переместить разделы назад и вперед, только не удивляйтесь, если что-то пойдет не так и все будет удалено.

2
06.07.2020, 00:50
1 ответ

<<< здесь строки. Аналогично этому документу :Слово после <<<и символ новой строки передаются на стандартный ввод команды. Синтаксис:command <<< "some sentence"(Аналогично echo "some sentence" | command, но без накладных расходов подоболочки)


Подстановка команд:"$(cmd "foo bar")"вызывает выполнение команды 'cmd' с аргументом 'foo bar', а "$(..)"заменяется выходными данными. См.http://mywiki.wooledge.org/BashFAQ/002и http://mywiki.wooledge.org/CommandSubstitution

.

Замена процесса:<(command)или >(command)заменяется записью FIFOили /dev/fd/*. В основном сокращение для настройки именованного канала. См.http://mywiki.wooledge.org/ProcessSubstitutionПример:diff -u <(sort file1) <(sort file2)


command < <(othercommand)#То же, что и othercommand | command, но без подоболочки 'команда'. Использует перенаправление файла (< )для перенаправления файла, созданного путем подстановки процесса (< ()). Пробел между < и < (... )важен, чтобы избежать двусмысленности (это heredoc, это перенаправленный PS? ).

2
18.03.2021, 23:21

Теги

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