Как изменить метку устройства на USB-накопителе?

Вам нужно записать смещение, в котором вы находились в конце.

Было бы проще использовать ksh93 или zsh, у которых для этого есть встроенные операторы вместо bash.

Например, с ksh93:

#! /bin/ksh93
file=/some/file.log
offset_file=$file.offset
offset=$(<"$offset_file")

{
  do-your-processing; ret=$?

  echo "$(<#((CUR)))" > "$offset_file" && exit "$ret"
} < "$file" <#((offset))

Сzsh:

#! /bin/zsh
zmodload zsh/system

file=/some/file.log
offset_file=$file.offset
offset=$(<$offset_file)

{
  sysseek offset || exit

  do-your-processing; ret=$?

  echo $((systell(0))) > $offset_file && exit $ret
} < $file

С bashвы можете сделать большую часть из вышеперечисленного и вызвать ksh93, zshили perlдля поиска/сообщения:

#! /bin/bash
file=/some/file.log
offset_file=$file.offset
offset=$(<"$offset_file")

seek() {
  OFFSET=$1 perl -e '
    seek(STDIN, $ENV{OFFSET}, 0) || die "seek: $!\n"'
}

tell() {
  perl -le 'print tell(STDIN)'
}

{
  seek "${offset:-0}" || exit

  do-your-processing; ret=$?

  tell > "$offset_file" && exit "$ret"
} < "$file"

Вы хотите убедиться, что всякий раз, когда файл усекается, файл file.offset пуст, усечен или в него записано 0.

1
16.01.2020, 14:40
1 ответ

Вы также можете попробовать использовать:

sudo tune2fs -L {label} {devicename}

или

sudo e2label {device} {label}

для форматов файлов ext[2,3,4].

Вы также можете использоватьGparted

  • Графический интерфейс вместо использования командной строки
  • пришлось бы устанавливать отдельно
  • убедитесь, что устройство не установлено
  • щелкните правой кнопкой мыши и выберите "метка"
0
27.01.2020, 23:55

Теги

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