타르볼 삽입 후 파일 삭제

타르볼 삽입 후 파일 삭제

tar 볼에 넣는 파일 수를 제한하고 현재 디렉토리와 관계없이 tar 볼에 삽입된 후 삭제하고 싶습니다. 나는 이것을 시도했지만 전체 경로 대신 파일 이름만 인쇄하는 장황한 옵션 tar -C ~/semios/tmp/ -cjvf ~/semios/tmp/test.tar.bz2 $(cd ~/semios/tmp/; ls *| head -5) | xargs rm -f으로 파일을 남겨 둡니다 . 매개 변수를 사용하여 수정할 수 있다고 생각했지만 그렇게 보이지는 않습니다. 팁이 있습니까?tar-C

답변1

경로에 잘못된 문자(공백, 줄 바꿈)가 없다고 가정합니다.

... $(ls ~/semios/tmp/*| head -5) | xargs -d '\n' rm -f

또는

... | { cd ~/semios/tmp/; xargs -d '\n' rm -f; }

또는

tar -C ~/semios/tmp/ -cjvf ~/semios/tmp/test.tar.bz2 \
  $(cd ~/semios/tmp/; ls * | head -5 | 
    { while read file; do echo "$file"; rm -f "$file"; done;})

편집하다

xargs기본적으로 모든 공백이 구분 기호로 사용되므로 줄바꿈만 구분 기호로 설정해야 합니다 . 하지만 이 $()예제는 이름에 공백이 있어도 충돌이 발생하기 때문입니다.

답변2

또는

$ tar -cjf test.tar.bz2 $(find ~/semios/tmp/ -name "*"| head -5 | xargs rm -f)

관련 정보