Сохраните локальную копию nfs, монтируются на компьютере

[2-57] набор символов, состоящий из 2, 3, 4, 5 и 7, в zsh и любом подстановочном знаке и regexp синтаксисе там. Ваш шаблон шарика *[2-57] соответствует каждому имени файла, последний знак которого является одной из тех пяти цифр.

Я думаю, что Вы - misremembering синтаксис [m,n] спецификатор шарика. Спецификаторы шарика всегда входят в круглые скобки в конце шаблона, и разделитель диапазона является запятой. Шаблон *([2,57]) расширяется до 2-го, 3-го, …, 57-е соответствия. Порядок расширения по умолчанию является лексикографическим (с некоторым специальным волшебством отсортировать числа в числовом порядке, если numeric_glob_sort опция установлена); можно управлять им с o или O спецификатор шарика (например. *(om[2,57]) соответствовать 57 новым файлам кроме одного нового файла).

for x in /foo/bar/*([2,57]); do print $x; done

Не, что Вы попросили, но связали и возможно полезный для будущих читателей: если Вы хотите перечислить файлы 2 - 57, существуют ли они или нет, можно использовать выражение фигурной скобки диапазона. Эта функция также существует в ударе и ksh.

echo hello{2..57}

И если Вы хотите соответствовать файлам, имя которых содержит число между 2 и 57, можно использовать шаблон <2-57>. Это характерно для zsh.

$ ls
file1 file2 file3 file57 file58
$ echo file<2-57>
file2 file3 file57

Обратите внимание что шаблон как *<2-57> вероятно не сделать то, что Вы ожидаете, потому что * мог соответствовать цифрам также. Например, file58 соответствия *<2-57>, с file5 соответствие * часть и 8 соответствие <2-57> часть. Шаблон *[^0-9]<2-57> избегает этой проблемы.

6
22.07.2011, 14:31
2 ответа

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

Существует несколько средств кэширования NFS, но большинство разработано для кэширования онлайн, для ускорения доступа. Они требуют коммуникации между сервером и клиентом, когда файл изменяется с обеих сторон, таким образом, они не подходят для офлайновых сценариев. То же идет для AFS.

Существуют усилия создать применимую распределенную файловую систему, поддерживающую разъединенную операцию:

  • Кода является распределенной файловой системой со многими расширенными функциями, в особенности поддерживайте для разъединенной операции. Это - относительно старый проект, довольно сформировавшийся, и интегрированный в ядре Linux. Когда клиент в режиме офлайн, его модификации хранятся в очереди. Когда клиент снова соединяется, эти модификации интегрируются, если это возможно, и Кода идет с инструментами для помощи слияниям, когда конфликты происходят.
  • Tsumufs является относительно новым проектом. Это добавляет разъединенную операцию сверху существующей распределенной файловой системы, такой как NFS. Я не думаю, что это довольно готово к производству все же.

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

Для не использующего высокие технологии решения я рекомендую Unison, двунаправленному синхронизатору файла. Сохраните локальные копии своих файлов и на сервере и на ноутбуке. Сразу после подключения Вашего ноутбука и сразу перед разъединением, выполненный унисон для синхронизации этих двух сторон. Unison скажет Вам, если будет конфликт (и будет работать тихо, если не будет); пока Вы всегда синхронизируетесь при соединении и разъединении, не будет конфликта.

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

6
27.01.2020, 20:27
  • 1
    Спасибо за предложения. Я как раз собирался начать взламывать некоторые сценарии вместе для получения моей работы идеи, но я думаю, что могу сделать, после того как из них работают. Еще раз спасибо. –  user174084 23.07.2011, 06:42

Если Вы хотите сохранить файлы и синхронизировать их, просто создают локальную копию и синхронизируются, NFS монтируются и Ваша локальная копия с помощью rsync.

2
27.01.2020, 20:27
  • 1
    я думаю OP, является после чего-то немного как окна офлайновыми файлами; или синхронизация файлов Mac, где механика этого все выполняются для пользователя, а не пользователем. –  jmtd 22.07.2011, 15:30
  • 2
    Такой сценарий, который делает всю работу, может быть создан в минутах. Дополнительно что-то как Унисон делает межплатформенную (двунаправленную) синхронизацию, но я рекомендовал бы использовать rsync любой путь. –  muffel 22.07.2011, 15:34

Теги

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