Вот решение только для bash -, использующее globstar
параметр оболочки:
$ shopt -s globstar; c=0; for f in ** ; do echo "${f##*/}"; [[ "${f##*/}" =~ ^lib* ]] && [[ -d "$f" ]] && ((c++)); done ; echo $c
Или в формате скрипта для удобства чтения:
#!/usr/bin/env bash
shopt -s globstar
c=0
for f in **
do
echo "${f##*/}"
if [[ "${f##*/}" =~ ^lib* ]] && [[ -d "$f" ]]
then
((c++))
done
echo $c
globstar
позволяет нам включить рекурсивную подстановку и через [[
с сопоставлением с образцом и флагом -d
, чтобы проверить, является ли это каталогом, мы увеличиваем переменную-счетчик $c
, которую мы печатаем в конце.
Я рекомендую сделать дамп диска в файл на внешнем диске (для скорости записи и свободного места ).
# /dev/sda is assumed your laptop drive
dd if=/dev/sda bs=1M of=/path/to/external_drive_mounted/laptop_dump.raw
Затем создайте диск дляvirtualbox
:
VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk \
-rawdisk /path/to/external_drive_mounted/laptop_dump.raw
Этот диск указывает только на необработанный дамп.
Теперь вы можете создать виртуальную машину с этим диском и поэкспериментировать.
Загрузите Live Linux...
Запустите GParted, уменьшите размер вашей системы Ext4. Создайте новый раздел для дампа.
И затем, вот пример как root:
dd if=/dev/sda | bzip2 > /some/path/sda-dd.bz2
Это может дать вам некоторое преимущество в виде дополнительного пространства.