Таблица разделов на самом деле представляет собой просто часть данных, которая говорит о таких вещах, как
Если удалить таблицу разделов, то данные в дорожках 10 ->99, 100 ->599, 600 ->16383 остаются нетронутыми, просто ОС уже не знает, как их найти. Поэтому, если вы затем воссоздаете таблицу разделов точно так же, ваши данные все еще будут доступны. Я использовал это в 2016 году, когда по ошибке уничтожил все свои таблицы разделов (https://www.sweharris.org/post/2016-02-10-break-mbr/)
.
Если вы хотите также удалить данные внутри разделов, вам нужно либо обнулить весь диск, либо отформатировать разделы.У большинства установщиков есть возможность сказать «форматировать раздел», когда вы выполняете настройку.
Или убедитесь, что ваши разделы начинаются в разных местах (, например, 9 ->100, 101 ->600, 601 ->16384 ), чтобы данные внутри не выглядели как файловая система.
С zsh
вместоbash
:
regular=(regular/*.txt(N:t))
compressed=(compressed/*.txt.bz2(N:t:r))
print -r Only in regular: ${regular:|compressed}
print -r Only in compressed: ${compressed:|regular}
Тогда можно:
for f (${regular:|compressed}) bzip2 -c regular/$f > compressed/$f.bz2
Это использование оператора вычитания массива ${A:|B}
(расширяется до элементовA
bar (, исключая )элементы изB
).
С помощью bash
и инструментов GNU:
(
export LC_ALL=C
shopt -s nullglob
comm -z23 <(cd regular && set -- *.txt && (($#)) && printf '%s\0' "$@") \
<(cd compressed && set -- *.txt.bz2 && (($#)) &&
printf '%s\0' "${@%.bz2}")
) |
while IFS= read -rd '' f; do
bzip2 -c "regular/$f" > "compressed/$f.bz2"
done
Затем выполняется вычитание с помощью команды comm
. Здесь используются разделители NUL, чтобы иметь возможность справляться с произвольными именами файлов, как в решении zsh.
просто измените путь к каталогу без "/" в конце, надеюсь, это поможет!
#!/bin/bash
path_input=/tmp/regular
path_compressed=/tmp/compressed
compressed_ext='.bz2'
echo "Starting backup..."
#List files and check if they are compressed
for file in `ls -1 $path_input/*.txt`; do
#Compressed file search
search_compressed=`sed "s;"$path_input";"$path_compressed";g" <<< $file$compressed_ext`
if [[ ! -f $search_compressed ]]
#Compress file
then
echo "Compressing $file"
bzip2 --keep --force "$file"
mv -f "$file$compressed_ext" "$path_compressed"
fi
done
echo "Done"