Песочница Linux, показывающая, какие файлы были созданы/изменены

Я бы сделал это с расширением параметра :

$ var='test#asdf'
$ for i in {1..10}; do echo "${var/\#/"$i"}"; done
test1asdf
test2asdf
test3asdf
test4asdf
test5asdf
test6asdf
test7asdf
test8asdf
test9asdf
test10asdf

Расширение ${parameter/pattern/string}

  • принимает расширение$parameter(в нашем случае,$var
  • заменяет первое вхождениеpattern(экранированным #/#имеет особое значение в контексте «заменить в начале строки», чего мы хотим избежать )на
  • string("$i"в нашем случае)

Кроме того, вы можете заменить #на %dи использовать его в качестве строки формата для printf:

.

printf "${var/\#/%d}\\n" {1..10}

1
28.06.2021, 01:00
1 ответ
  1. It would allow you to run programs in a virtual environment.
  2. It would use the current system configuration, i.e. that running programs in the sandbox would be identical to running outside the sandbox.
  3. It would show which files were added or changed.

То, что вы описали, будет реализовано с rootfs только для чтения,и оверлеи, которые вы можете проверить позже. Или, что еще проще, положите свои rootfs на btrfs, или ZFS, или на файловую систему на тонком пуле LVM, и сделайте снапшот перед установкой сомнительного софта. Затем вы можете позже смонтировать снимок и сравнить его с состоянием вашего фактического корня.

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

  1. It would allow you to approve or reject changes if necessary. Like a commit in svn.

СВН, олдскул! Ну и можно конечно выборочно скопировать измененные файлы из оверлея в постоянное хранилище постфактум. Если вы работали со снимками файловой системы, rsync --deleteотлично подходит для выборочного восстановления предыдущих состояний.

1
28.07.2021, 11:21

Теги

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