이 명령을 고려하십시오.
ls /mydir/*.txt | xargs chown root
모든 텍스트 파일의 소유자 mydir
를 루트 로 변경하는 것이 목적입니다.
문제는 .txt
파일 이 없으면 mydir
xargs는 경로가 지정되지 않았다는 오류를 발생시키는 것입니다. 이것은 오류가 발생하기 때문에 무해한 예이지만, 여기에서 사용해야하는 스크립트와 같은 경우 빈 경로가 현재 디렉토리로 간주됩니다. 따라서 그 명령을 실행 /home/tom/
하면 결과가없고 ls /mydir/*.txt
모든 파일 /home/tom/
의 소유자가 root로 변경되었습니다.
xargs가 빈 결과를 무시하도록 어떻게 할 수 있습니까?
git branch --merged | grep -v '^* ' | xargs git branch -d
입니다. 빈 입력에서도 실패합니다.
ls
프로그램 용도로 출력을 배관하지 마십시오 . mywiki.wooledge.org/ParsingLs