다음 find 명령은 여러 파일을 생성하여 모두 보냅니다.
find /home/cde -ctime -1 -name "Sum*pdf*" -exec uuencode {} {} \; |mailx -s "subject" [email protected]
homecdeSum123.pdf
그런데 , 와 같은 첨부파일을 받았습니다 homecdeSum324.pdf
. 첨부파일에서 정확한 파일명을 얻는 방법.
답변1
Sum123.pdf
내가 올바르게 이해 했다면 첨부 homecdeSum123.pdf
파일의 파일 이름을 .
uuencode
두 번째 매개변수의 경로 이름을 제거하여 다른 호출 방법을 사용해야 한다고 생각합니다 .
find /home/cde -ctime -1 -name "Sum*pdf*" | while read name; do uuencode "$name" "${name##*/}" | mailx -s "subject" [email protected]; done
이렇게 하면 각 파일에 대해 별도의 이메일이 전송됩니다. 이 ${name##*/}
부분은 변수를 가져 $name
와서 마지막 슬래시까지의 모든 항목을 제거하고 결과를 반환합니다.
모든 파일을 하나의 메일로 보내려면 mailx
끝에 파이프의 일부를 넣으십시오.
find /home/cde -ctime -1 -name "Sum*pdf*" | while read name; do uuencode "$name" "${name##*/}"; done | mailx -s "subject" [email protected]
답변2
이 단 하나의 라이너를 사용해보십시오
find /home/cde -ctime -1 -name "Sum*pdf*" | uuencode files.txt | mailx -s "subject" [email protected]