lpr을 사용하여 여러 파일을 동시에 인쇄하는 방법은 무엇입니까?

lpr을 사용하여 여러 파일을 동시에 인쇄하는 방법은 무엇입니까?

lpr을 사용하여 쉘에서 여러 파일을 인쇄하려고 합니다. 나는 다음과 같이 입력합니다:

lpr -P PRINTERNAME ./*/dir/file.pdf

하지만 "lpr: 인쇄 요청에 파일이 없습니다."라는 메시지가 나타납니다.

ls를 다음과 같이 사용할 때

ls ./*/dir/file.pdf

인쇄하려는 파일이 올바르게 나열됩니다. 무슨 일이 일어나고 있는지 이해하도록 도와줄 수 있는 사람이 있나요?

답변1

내가 뉴스를 얻는 방법 중 하나

lpr: 인쇄 요청에 파일이 없습니다.

패턴별로 정렬된 첫 번째 파일이 빈 파일인 경우.

예를 들어:

$ touch f0
$ echo A > f1
$ lpr f*
lpr: No file in print request.

대안을 제시하자면 실제로 for는 그럴 필요가 없습니다. ls예를 들어 파일 이름에 공백이 포함된 경우 심각한 오류가 발생하기 쉽습니다.

대안으로 다음을 시도해 볼 수 있습니다.

shopt -s nullglob  # So that if there are no matches you won't try to send
                   # pattern to printer.
for x in ./*/dir/file.pdf; do 
     lpr -P PRINTERNAME "$x"; 
done
shopt -u nullglob  # Restore

그리고 인용하는 것을 잊지 마세요. 항상 인용됩니다.


또한 참고하십시오:

다음을 사용하여 lpr PATTERN모든 파일을 대기열에 넣습니다.하나작업 이름은 목록의 첫 번째 파일입니다.

그건:

# List files:
ls file*
file1 file2 file3

# Add to print job
lpr file*

이제 file1, file2 및 file3이 인쇄 대기열에 있어야 합니다. 하지만 세 개의 작업 대신 하나의 작업이 있습니다. 옵션을 통해 설정하지 않은 경우 작업 이름은 첫 번째 파일에서 제공됩니다.

lpq
Rank    Owner   Job     File(s)              Total Size
1st     user    80      file1                9248 bytes
                         |
                         +----- Actually is file1, file2, file3

이 질환이 있는 경우 다음 lp을 통해 더 자세히 보고됩니다.

lp file*
request id is PRINTER-362 (3 file(s))

원하는 경우 다음을 통해 작업 이름을 설정할 수도 있습니다.

lpr -T "My 3 Files" file*

lpq
Rank    Owner   Job     File(s)              Total Size
1st     user    80      My 3 Files           9248 bytes

답변2

디렉토리 레이아웃의 세부 사항을 모르면 파일 이름의 다양한 수준의 하위 디렉토리나 공백을 해석하는 데 문제가 있는 것 같습니다.

find파일을 사용하고 lpr다음으로 파이핑 해 볼 수 있습니다 xargs.

find . -wholename "*/dir/file.pdf" -print0 | xargs -0 lpr -P PRINTERNAME

답변3

find /home/.../.../** -exec lp {} \;

관련 정보