
Ich versuche, den Dateinamen zu extrahieren und an die E-Mail anzuhängen. Aber wenn ich die E-Mail sende, enthält der Anhang Pfad- und Dateinamen.
Bsp.: dir=/home/as123/bill
und filename=abc.pdf.Z
ich bekomme Anhänge wie
homeas123billabc.pdf.Z
find $dir -ctime -1 -type f -name "abc*pdf*" -exec basename {} \; -exec uuencode {} {} \; | mailx -s "north" [email protected]
printf
ist auf meinem Computer nicht installiert. Wie schreibe ich ohne das mein Skript, um nur den Dateinamen als Anhang zu erhalten?
Antwort1
Ich vermute, Sie meinen, dass der Dateiname in der uuencode
Ausgabe enthalten sein soll:
begin 644 path/to/the/file.pdf.Z
%=&5S=`H`
`
end
nicht einzuschließen path/to/the
.
Dafür soll das zweite Argument uuencode
der Basisname sein. Dazu müssen Sie es folgendermaßen machen:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -exec sh -c '
for file do
uuencode "$file" "$(basename "$file")"
done' sh {} +
Oder wenn Sie find
unterstützen -execdir
:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -execdir uuencode {} {} \;
Mit Ihrer find
Unterstützung -printf
hätten Sie es wie folgt schaffen können:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -printf '%p\0%f\0' |
xargs -r0n2 uuencode