Возможно, tar
может помочь подготовить файл со ссылками:
find . -type l > links.txt
tar cpf links.tar --files-from links.txt
А затем создать ссылки там, где это необходимо:
tar xvf links.tar
Tomé este guión:
#!/bin/bash
trap "" INT
trap - INT
Y corrió:
$ strace bash script.sh 2>&1 | grep INT
Entre la salida, veo:
read(3, "#!/bin/bash\ntrap \"\" INT\ntrap - I"..., 80) = 35
read(255, "#!/bin/bash\ntrap \"\" INT\ntrap - I"..., 35) = 35
rt_sigaction(SIGINT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f24e88f2030}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f24e88f2030}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f24e88f2030}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f24e88f2030}, 8) = 0
Dado el sa_handler=SIG_IGN
en la primera llamada a rt_sigaction()
y el sa_handler=SIG_DFL
en la segunda, parece que trap "" INT
está causando que bash
realmente ignore la señal, y trap - INT
está causando que restablecer al controlador predeterminado.