David Schwartz корректен, --partial
(или лучше, -P
) действительно делает то, что Вы хотите. Я проверил это на 37G файл, который был остановлен ~8g в него по сети. rsync быстро просканировал первые части частичного (показывающий прогресс, когда он шел благодаря -P
), и затем возобновленный передача в конец частичного файла.
Имя файла Shell globbing и регулярные выражения используют некоторые из тех же символов, и у них есть подобные цели, но Вы правы, они не совместимы. Имя файла globbing является намного менее мощной системой.
В имени файла globbing:
*
означает "нуль или больше символов"
?
означает "любой отдельный символ"
Но в regexes, необходимо использовать .*
означать "нуль или больше символов", и .
означает "любой отдельный символ". A ?
средства что-то очень отличающееся в regexes: нуль или один экземпляр предыдущего элемента РЕ.
Квадратные скобки ([]
) кажись, работать то же в обеих системах в системе, я ввожу это на для простых случаев, по крайней мере. Это включает вещи как классы символов POSIX (например. [:alpha:]
). Тем не менее, если Вам нужны Ваши команды для работы над многими различными системными типами, я рекомендую против использования чего-либо вне элементарных вещей как списки символов (например. [abeq]
) и возможно диапазоны символов (например. [a-c]
).
Эти различия означают, что эти две системы являются только непосредственно взаимозаменяемыми для простых случаев. При необходимости в соответствии regex имен файлов необходимо сделать это иначе. find -regex
одна опция. (Заметьте, что существует также find -name
, между прочим, который использует синтаксис шарика.)
Ответ на вопрос выразил в оригинальном названии:
То, почему регулярные выражения отличаются от этого, раньше фильтровало файлы?
Расширение имени файла предшествует регулярным выражениям, уже существовал с большинством операционных систем (символы подстановочного знака/шутника) и намного более прост и интуитивен, чем последний.
В то время как *.txt
легко понятно обычными пользователями, аналогичным .*\.txt
что-то более целенаправленное опытным пользователям/программистам, не говоря уже о ^.*\.txt$
...
*.txt
не равняется .*\.txt
, это (главным образом) равняется .*\.txt$
потому что не может быть ничего после .txt
(по крайней мере, принятие разумного имени файла globbing). Возможно, ровный ^.*\.txt$
несколько в зависимости от использования. Подтверждает Вашу точку зрения?
– a CVn
09.01.2013, 10:17
'%'
средства'*'
. – Mr Lister 08.12.2012, 15:48