나는 다음과 같은 것을하려고 노력하고 있습니다.
ls -t | head -n 3 | xargs -I {} tar -cf t.tar {}
마지막 3개의 수정된 파일을 아카이브하지만 결국 각 파일에 대해 개별적으로 tar 명령을 실행하게 되며 순서에 관계없이 3개의 파일 중 마지막 파일을 포함하는 tar 파일이 남습니다. 나는 "xargs"를 올바르게 사용하지 않는다는 것을 알고 있지만 검색이 도움이 되지 않았습니다. 내가 찾은 몇 가지 예도 작동하지 않습니다. 더욱 간단한 명령
ls | xargs -I {} tar -cf t.tar {}
해당 디렉토리에서 단 하나의 파일만 포함하는 tar 파일이 생성됩니다.
답변1
ls -t | head -n 3 | xargs tar -cf t.tar
나를 위해 작동합니다. 플래그를 설정해야 하는 이유가 있나요 -I
?
답변2
~에 따르면이 게시물, 입력이 파쇄되어 마지막 청크만 포함하는 tar 파일을 생성하는 경우 r
대신 사용하는 것이 좋습니다 . 따라서 더 나은 해결책은 다음과 같습니다.c
xargs
rm -f t.tar 2>/dev/null # remove tar if there
ls -t | head -n 3 | xargs tar -rf t.tar