파일 형식이 결정됨 [닫기]

파일 형식이 결정됨 [닫기]

제품의 일부로 여러 스크립트가 제공됩니다.

스크립트 중 하나에서 작동하지 않는 다음 줄을 발견했습니다.

find . -name *.old -type f -mtime +7 | xargs compress -f

file*.old 파일 중 하나에서 명령을 실행하면 다음과 같은 결과가 나타납니다.ASCII text, with very long lines

무엇을 할 수 있는지 제안해 주실 수 있나요?

답변1

이 명령의 출력은 명령 시퀀스가 ​​실패한 이유와 관계가 없습니다 file.file

원래 명령의 출력 외에도 find가장 흥미로운 것은 다음의 출력입니다.

find . -name *.old -type f -mtime +7

에코된 파일 이름이 없으면 compress인수 없이 호출되므로 표준 입력을 기다립니다. 파일 이름에 공백이 있는 경우 xargs파일을 압축할 때 문제가 발생할 수도 있습니다 .

최소한 다음과 같이 변경해 보아야 합니다.

find . -name "*.old" -type f -mtime +7 -print0 | xargs -0 --no-run-if-empty compress -f

OP 의견을 기반으로 업데이트하면 다음과 같습니다.

find . -name "$FILE" -type f $ACTION_TYPE +$PARAM -print0 | xargs -0 --no-run-if-empty compress -f 

for는 공백이 포함된 파일 이름이 압축에 올바르게 전달되도록 -print0합니다 find. -0파일이 전혀 발견되지 않으면 실행이 차단
됩니다 .--no-run-if-emptyxargscompress

관련 정보