Автор Тема: Каталоги и файлы с кириллицей не копируются на внешний HDD  (Прочитано 2589 раз)

Оффлайн Nicom

  • Участник
  • *
  • Сообщений: 960
либо сразу архив создавать на внешнем носителе ..
tar как раз для этого и придумали.

Оффлайн Kamrad

  • Участник
  • *
  • Сообщений: 218
  • Пингвиновод
Ещё наблюдение - после попытки удаления с данного HDD каталога с скопированнымт файлами часть их тем не менее остаётся, а система меланхолично выдаёт - "нет такого файла или каталога". 8-). Удалить пробовал на Вантузе и Пингвине - результат одинаков.
"Linux используют ...э....энтузиасты, а нормальные люди работают на Windows! Вот представьте - приучили вы ребёнка работать с Linux, а придёт он в школу, где кругом Windows - и что он будет делать?!" (аргументация менеджера в компьютерной фирме)

Оффлайн mere_user

  • Участник
  • *
  • Сообщений: 59
chkdsk /f (под windows, конечно) сделать бы

Оффлайн Kamrad

  • Участник
  • *
  • Сообщений: 218
  • Пингвиновод
Уже собирался это делать, как вдруг случайно обнаружил, что данные файлы, которые нельзя было удалить "совсем и навсегда" даже от root'a, спокойно удаляются через "корзину" от учётной записи пользователя.
"Linux используют ...э....энтузиасты, а нормальные люди работают на Windows! Вот представьте - приучили вы ребёнка работать с Linux, а придёт он в школу, где кругом Windows - и что он будет делать?!" (аргументация менеджера в компьютерной фирме)

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
Уже собирался это делать, как вдруг случайно обнаружил, что данные файлы, которые нельзя было удалить "совсем и навсегда" даже от root'a, спокойно удаляются через "корзину" от учётной записи пользователя.
Линукс не поддерживает разграничение прав в фс NTFS.

Оффлайн Kamrad

  • Участник
  • *
  • Сообщений: 218
  • Пингвиновод
Линукс не поддерживает разграничение прав в фс NTFS.

Именно в Linux`e и получилось удалить. В Вантузе никак не получалось.
"Linux используют ...э....энтузиасты, а нормальные люди работают на Windows! Вот представьте - приучили вы ребёнка работать с Linux, а придёт он в школу, где кругом Windows - и что он будет делать?!" (аргументация менеджера в компьютерной фирме)

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 289
  • Дмитрий/Dmitry/德米特里/दिमित्री
Именно в Linux`e и получилось удалить.
Поэтому и получилось удалить, что Linux разграничение прав именно в NTFS не поддерживает.

Оффлайн rits

  • Участник
  • *
  • Сообщений: 1 208
  • ITS
Попробуй копировать rsync -ом, он более информативен. Как то занимался переносом с NTFS на ext4:
Копируем синхронизируем каталоги. Ошибки синхронизации записываем в файл. Набр параметров -rlptDv равен параметру -a за исключением параметров  --owner (сохранить владельца) и --group (сохранить группу)

# rsync -rlptDvh /mnt/1s/ /mnt/smb/docsae/ 2> rsync_err
или
# rsync -rlptDvh --chmod 750 /mnt/1s/ /mnt/smb/docsae/ 2> rsync_err

При переносе файлов, имена каталогов и файлов превыщающие 255 байт (символ кириллицы  занимает 2 байта) отбивают ошибку и не копируются.
Составить такой список файлов:
# find /mnt/1s -type f >  ./path_1s.txt
# while read line; do len=`basename "$line" | tr -d [:cntrl:] | wc -c`; if [ $len -gt 255 ]; then echo $line; fi; done < ./path_1s.txt
или
# while read line; do len=`echo "${line##*/}" | tr -d [:cntrl:] | wc -c`; if [ $len -gt 255 ]; then echo "$len $line"; fi; done < ./path_1s.txt

cat  rsync_err | sed 's/#//g' | xargs -0 printf # на случай абракадабры

Депсик:
Цитировать
В файловой системе ext4 максимальная длина пути и имени файла зависит от нескольких факторов.
1. Максимальная длина имени файла (filename)

    255 байт (не символов!) – это стандартный лимит для одного имени файла или директории в ext4.
    Для Unicode-символов (UTF-8) один символ может занимать несколько байт, поэтому фактическое количество символов может быть меньше.

2. Максимальная длина полного пути (pathname)

    4096 байт (4 KiB) – это общий лимит на полный путь к файлу, включая все поддиректории и разделители /.
    Например, путь /home/user/documents/report.txt должен укладываться в этот лимит.

Проверить лимиты в Linux

Можно узнать точные значения с помощью:
getconf NAME_MAX /path/to/dir  # Максимальная длина имени (обычно 255)
getconf PATH_MAX /path/to/dir  # Максимальная длина пути (обычно 4096)

Вывод
    Имя файла: до 255 байт.
    Полный путь: до 4096 байт.
Если путь или имя слишком длинные, команды в терминале могут выдавать ошибку ENAMETOOLONG
« Последнее редактирование: 24.03.2025 21:57:27 от rits »