나는 첫 번째 스크립트를 작성했습니다.
find /media/temp/test -type f -printf '%T@ %p\n*.tar.gz' | sort -n | tail -1 | cut -f2- -d" " | xargs tar -xvpf
최근 수정된 파일 .tar.gz를 찾아 /media/temp/test 대신 일부 디렉토리에 추출하고 싶습니다.
답변1
나머지 명령이 제대로 작동한다고 가정하면 마지막 부분만 교체하면 됩니다.
xargs tar -xvpf
그리고
(cd /certain/directory; xargs tar -xvpf)
그리고 tar 명령은 이 디렉터리에서 실행됩니다. 이는 다른 디렉토리와 관련된 명령을 실행하는 데 일반적이고 유용한 "트릭"입니다.
tar 파일 이름(이 경우 find 명령의 출력)이 절대 경로이기 때문에 이는 여기에서만 작동합니다. 상대 경로 이름인 경우 위의 "cd"는 작동하지 않습니다.
tar
사용할 수 있는 매개변수가 이미 있습니다:
-C directory
In c and r mode, this changes the directory before adding the following files. In x mode, change directories after opening
the archive but before extracting entries from the archive.
따라서 마지막 부분을
xargs tar -C /certain/directory -xvpf
tar 버전을 확인하고 테스트하세요. 플랫폼 간에는 미묘한 차이가 있습니다(사용 중인 UNIX 변형을 지정하지 않음). 아카이브의 경로 이름도 상대적이기 바랍니다.