Вы не хотите анализировать вывод ls
. Если вам нужен список всех файлов .gz
в папке и что-то делать с каждым результатом, лучше использовать bash
или zsh
, а ваш find
поддерживает предикаты -iname
и -print0
(как в GNU, Solaris 11 или некоторых системах BSD):
while IFS= read -r -d $'\0' file; do
echo "found a .gz: $file"
done < <(find . -type f -iname "*.gz" -print0)
He aprendido que tal coincidencia de patrones no es trivial. Todos los directorios dentro de la ruta desde la raíz hasta LATEST
deben incluirse entre los patrones de inclusión (ya sea con --include=*/ --include=*/dir_1/
o--filter='+ /' --filter='+ /dir_1/'
). Del mismo modo, todo lo demás debe excluirse con --exclude=*
o--filter='- /unwanted_dir/*
).
Mi secuencia de comandos aún analiza la salida --list-only
para encontrar dónde está vinculado LATEST
. Luego, incluyo solo rutas que llegan a LATEST
.
Considero experimentar con los argumentos de la línea de comando de rsync para poder obtener ÚLTIMO como un enlace simbólico y donde sea que apunte.