tar:/dev/st0: не Может записать: ошибка ввода/вывода

Второй шаг в Вашем конвейере немного повреждается (он искажает обратные косые черты и ведущий и запаздывающий пробел), и сложный способ сделать это. Использовать tr преобразовать в нижний регистр. Вы не должны ограничивать поиск файлами: каталоги могут столкнуться также.

find . | tr '[:upper:]' '[:lower:]' | LC_ALL=C sort | LC_ALL=C uniq -d

Обратите внимание, что это только работает, если имена файлов не содержат новые строки. В соответствии с Linux, переключателем к пустым байтам как разделитель для преодоления новых строк.

find . -print0 | tr '[:upper:]' '[:lower:]' | LC_ALL=C sort -z | LC_ALL=C uniq -dz

Это печатает строчные версии имен файлов, который не действительно способствует выполнению чего-то о файлах.

Если Вы используете zsh, забываете о find: zsh имеет все, в чем Вы нуждаетесь, встроил.

setopt extended_glob
for x in **/*; do
  conflicts=($x:h/(#i)$x:t)
  if (($#conflicts > 1)); then
    ## Are all the files identical regular files?
    h=()
    for c in $conflicts; do 
      if [[ -f $c ]]; then
        h+=(${$(md5sum <$c)%% *})
      else
        h=(not regular)
        break
      fi
    done
    if (( ${#${(@u)h}} == 1 )); then
      # Identical regular files, keep only one
      rm -- ${conflicts[1,-2]}
    else
      echo >&2 "Conflicting files:"
      printf >&2 '    %s\n' $conflicts
    fi
  fi
done
3
23.06.2014, 17:38
1 ответ

В основном я видел это с неисправными ленточными накопителями (вплоть до того, что сначала заподозрил ленту и отправил в аналитическую лабораторию), однако другие комментаторы правы в этом вопросе. Конечно, бывают случаи, когда вам нужно даже увеличить параметр buffer_kbs модуля st для правильной записи на ленту.

У меня больше нет ленточного накопителя, но вы можете использовать sg3_utils , чтобы запросить накопитель, и одно из полей IIRC содержало информацию о размере блока.

1
27.01.2020, 21:31

Теги

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