
Estoy intentando extraer el nombre del archivo y adjuntarlo al correo. Pero cuando envío un correo, el archivo adjunto viene con el nombre de la ruta y el nombre del archivo.
Ej: dir=/home/as123/bill
y filename=abc.pdf.Z
estoy teniendo apego como
homeas123billabc.pdf.Z
find $dir -ctime -1 -type f -name "abc*pdf*" -exec basename {} \; -exec uuencode {} {} \; | mailx -s "north" [email protected]
printf
no está instalado en mi máquina, sin eso, ¿cómo escribir mi script para obtener solo el nombre del archivo como archivo adjunto?
Respuesta1
Sospecho que quiere decir que desea que el nombre del archivo se incluya en el uuencode
resultado:
begin 644 path/to/the/file.pdf.Z
%=&5S=`H`
`
end
para no incluir el path/to/the
.
Para eso, desea que el segundo argumento pasado uuencode
sea el nombre base. Para eso necesitarías hacerlo como:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -exec sh -c '
for file do
uuencode "$file" "$(basename "$file")"
done' sh {} +
O si tus find
soportes -execdir
:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -execdir uuencode {} {} \;
Si hubiera sido find
compatible -printf
, podría haberlo hecho con:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -printf '%p\0%f\0' |
xargs -r0n2 uuencode