
파일명을 추출해서 메일에 첨부하려고 합니다. 그런데 메일을 보내면 첨부파일에 경로명과 파일명이 함께 옵니다.
예: dir=/home/as123/bill
그리고 filename=abc.pdf.Z
나는 다음과 같은 애착을 갖게 되었습니다.
homeas123billabc.pdf.Z
find $dir -ctime -1 -type f -name "abc*pdf*" -exec basename {} \; -exec uuencode {} {} \; | mailx -s "north" [email protected]
printf
내 컴퓨터에 설치되어 있지 않은 경우 파일 이름만 첨부 파일로 가져오도록 스크립트를 작성하는 방법은 무엇입니까?
답변1
나는 당신이 출력에 포함된 파일 이름을 원한다는 것을 의미한다고 생각합니다 uuencode
.
begin 644 path/to/the/file.pdf.Z
%=&5S=`H`
`
end
를 포함하지 마십시오 path/to/the
.
uuencode
이를 위해 전달된 두 번째 인수가 기본 이름이 되도록 원합니다 . 이를 위해서는 다음과 같이 해야 합니다:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -exec sh -c '
for file do
uuencode "$file" "$(basename "$file")"
done' sh {} +
또는 귀하가 find
지원하는 경우 -execdir
:
find "$dir" -ctime -1 -type f -name "abc*pdf*" -execdir uuencode {} {} \;
find
지원 했다면 -printf
다음을 사용하여 수행할 수 있었습니다.
find "$dir" -ctime -1 -type f -name "abc*pdf*" -printf '%p\0%f\0' |
xargs -r0n2 uuencode