включить файлы точек (.x) с помощью команды rsync -r

Просто заставьте awk сделать все за вас

awk '$20 ~ /GET/{gsub(/"/, "", $24); sub(/[^.]*\./, "", $24); a[$24]++};
END{for (k in a)print k, a[k]}' /var/log/nginx/error_log
2
27.05.2018, 23:51
3 ответа

Si esto es bash, simplemente puede configurardotglob:

shopt -s dotglob

Esto no coincide con .o..(en contraste con.*).

Entonces se podría usar el mismo comando:

rsync -r --exclude="node_modules" "/r2g_shared_dir/vamoot"/*...
1
27.01.2020, 22:09

Es mejor dejar la coincidencia de patrones en rsync, entonces no depende del shell y las opciones que tenga ese shell en ese momento.

Cuando lo haces:

rsync -a /some/dir/* host:/remote/dir/

entonces en realidad le está pidiendo al shell que expanda la parte /some/dir/*, de modo que rsync se ejecute así:

rsync -a /some/dir/adir /some/dir/afile /some/dir/anotherfile [etc] host:/remote/dir/

Esto suele ser bastante similar a lo que era la intención, sin embargo, no siempre como lo demuestra el hecho de que se hizo esta pregunta. Por lo tanto, es mejor ejecutar:

rsync -a /some/dir/ host:/remote/dir/

Ahora rsync (porque -aes una abreviatura de -rlptgoDque incluye -rpara recursividad )recorrerá recursivamente el directorio /some/diry sincronizará todo su contenido con /remote/diren el host remoto, incluidos los archivos de puntos directamente en /some/dir.

Como la ruta de origen termina con una barra inclinada /, los nombres de archivo transferidos omiten cualquier parte de la ubicación de origen. Si se pasó /some/dir, entonces está diciendo que sincronice explícitamente el directorio dir, incluido su nombre.Se recomienda adquirir el hábito de agregar la última barra inclinada en todo momento para evitar tal confusión, a menos que realmente comprenda lo que está sucediendo.

5
27.01.2020, 22:09

Я думаю, что лучше всего использовать архивный режим (-a ), страницы руководства говорят об этом :«Это эквивалентно -rlptgoD. Это быстрый способ сказать, что вы хотите рекурсию и хотите сохранить почти все (с -H, являющимся заметным упущением ).:

rsync -a /source/path/ /destination/path/
  • всегда используйте косую черту в конце /
  • не используйте *, так как он не включает точечные файлы
  • если передача по сети выполняется медленнее, чем чтение/запись на диск, рассмотрите сжатие -z
1
28.10.2020, 09:03

Теги

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