Слияние папок с практически тем же именем, но другим преобразованием регистра

Проверьте сценарии в /etc/init.d это связано с в runlevel каталогах /etc/rc0.d (останов) и /etc/rc6.d (перезагрузка). Например, я поместил извлечь команду в /etc/init.d/reboot и это хорошо работало.

Но, я не нахожусь на Живом CD, таким образом, я не могу протестировать то, что работало бы.

Если Вы думаете об этом, что-то вроде этого, трудно вообразить, включая сценарий или даже скомпилированный двоичный файл. Даже двоичный файл требует некоторого выделения/освобождения наверху, и как только Вы извлекаете CD, Вы сделаны. Скорее это должно быть похожим на флаг и указатель на машинную команду, сохраненную в некоторой суперпостоянной памяти...

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

(Редактирование) Другая мысль: Вы могли так или иначе разделить свою файловую систему, создав раздел для просто извлечь команды и перезагрузки, размонтировать все другие, затем выполнить команду? (Но, вероятно, затем fsck нужно было бы сказать не жаловаться каждый раз, что извлекать-раздел не был размонтирован правильно.) Или, Вы могли поместить его на карту с интерфейсом USB? (Это - очень интересная проблема; при решении его действительно скажите нам!)

(Отредактируйте 2) Что относительно слияния извлекаются и перезагрузка, таким образом, Вы получаете один двоичный файл, это загружается в память, извлекитесь, извлекает CD, но не должен загружать перезагрузку ни из какой файловой системы, это уже находится в оперативной памяти?

3
11.10.2013, 00:35
2 ответа

Все команды начинают с каталога верхнего уровня и предполагают, что у Вас нет новых строк в именах файлов. Я принимаю инструменты GNU (Linux или Cygwin). Предупреждение, это все не тестируется код, ввело непосредственно в браузер.

Довольно легко объединить все каталоги с нижним регистром. Один подход должен рекурсивно вызвать по всем каталогам и объединить их в их строчный дубликат. Сделайте пересекающуюся глубину сначала так, чтобы при слиянии двух каталогов их содержание было уже нормализовано.

find . -depth -name '*[[:upper:]]*' -type d -execdir sh -c '
  source=$0
  target=$(echo "$source" | tr "[:upper:]" "[:lower:]")
  if [ "$source" != "$target" ]; then  # need to rename or merge
    if [ -d "$target" ]; then
      # merge $source (mixed- or uppercase) into $target (lowercase)
      find "$source" -mindepth 1 -maxdepth 1 -exec mv -bt "$target" {} +
      rmdir "$source"
    else
      mv "$source" "$target"
    fi
  fi
' {} \;

Если Вы хотите объединиться от нижнего регистра до смешанного случая, необходимо определить каталог смешанного случая, соответствующий каждому строчному каталогу. Следующий отрывок выбирает произвольный каталог смешанного случая, если существует больше чем один.

find . -depth ! -name '*[[:upper:]]*' -type d -execdir sh -c '
  source=$0
  target=$(find . -maxdepth 1 -iname "$source" -not -name "$source" -print -quit)
  if [ -n "$target" ]; then …
  fi
' {} \;
0
27.01.2020, 21:32

У меня была та же проблема, и я нашел практическое решение.

Просто зайдите в свою учетную запись Dropbox, переименуйте корневые папки в строчные буквы и загрузите их снова!

Я читал в другом месте , что у Dropbox есть проблема с папками и нечувствительностью к регистру. Я не уверен, что единственной проблемой было наличие имен папок в верхнем регистре. У меня были другие проблемы, которые могут повлиять на файловую систему Dropbox помимо папок с заглавными буквами, например, общий доступ к папкам с Mac и попытка загрузить их на машину с Ubuntu. Но проблема, которую я обнаружил, была похожа на ту, о которой сообщалось здесь. Все папки были правильно видны на веб-сервере, но при загрузке все папки, начинающиеся с заглавной буквы, дублировались, и часть содержимого попадала в папки с прописными буквами, а часть содержимого - в папки со строчными буквами, поэтому я искал способ объединить эти папки.

1
27.01.2020, 21:32

Теги

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