Требование о сохранении нескольких -строковых записей, даже если первая строка соответствует шаблону «игнорировать», добавляло некоторую сложность. В итоге я написал конечный -конечный автомат в Awk для фильтрации HISTFILE после того, как он был записан на диск (. Я не смог найти способ запустить фильтрацию до того, как он уже был записан ).
~/.bashrc:
# if shell is interactive, filter history upon exit
if [[ $- == *i* ]]; then
trap '$HOME/.bash_history_filter >/dev/null 2>&1 &' EXIT
fi
~/.bash _история _фильтр:
tmpfile=$(mktemp)
trap 'rm -f "$tmpfile"' EXIT
filter_script="$HOME/.bash_history_filter.awk"
persisted_history="${HISTFILE:-$HOME/.bash_history}"
if [[ -r "$filter_script" && -r "$persisted_history" ]]; then
awk -f "$filter_script" "$persisted_history" > "$tmpfile"
mv "$tmpfile" "$persisted_history"
fi
~/.bash _история _filter.awk:
/^#[[:digit:]]{10}$/ {
timestamp = $0
histentry = ""
next
}
$1 ~ /^(ls?|man|cat)$/ {
if (! timestamp) {
print
} else {
histentry = $0
}
next
}
timestamp {
print timestamp
timestamp = ""
}
histentry {
print histentry
histentry = ""
}
{ print }
Несколько связанных сообщений(здесь и здесь)наводят меня на мысль, что это также можно сделать с помощью sed. Я еще не разобрался с этим, но мне было бы любопытно посмотреть, как это сравнится.
Контрольные суммы md5 двух файлов различаются только в том случае, если различается их содержимое. Вы можете убедиться в этом, сравнив их с командой cmp
или diff
.
Может быть несколько причин неправильной работы операции копирования:
Отключение SD-карты перед очисткой дискового кеша. Вы можете попробовать использовать udiskctl .
Повреждение файловой системы. Можно попробовать переформатировать карту.
Сбой оборудования.
Система не записывает все данные, пока носитель не будет размонтирован. Это обычное поведение со съемными (обычно медленными носителями и флэш-памятью ), поскольку система пытается ограничить количество операций записи.
Визуально , вы можете заметить файловый менеджер (PCManFM, если я хорошо помню... )предупреждает вас об ожидании процесса размонтирования (если у вас есть светодиод для устройства чтения SD-карт, он будет мигать как ад)
EDIT1:вы можете проверить/подтвердить мою теорию, используя команду sync
, которая очищает файл -системный кеш