Extraer el nombre del archivo del comando buscar

Extraer el nombre del archivo del comando buscar

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/billy filename=abc.pdf.Zestoy teniendo apego como

homeas123billabc.pdf.Z

find $dir -ctime -1 -type f -name "abc*pdf*" -exec basename {} \; -exec uuencode {} {} \; | mailx -s "north" [email protected]

printfno 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 uuencoderesultado:

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 uuencodesea 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 findsoportes -execdir:

find "$dir" -ctime -1 -type f -name "abc*pdf*" -execdir uuencode {} {} \;

Si hubiera sido findcompatible -printf, podría haberlo hecho con:

find "$dir" -ctime -1 -type f -name "abc*pdf*" -printf '%p\0%f\0' |
  xargs -r0n2 uuencode

información relacionada