Linux-특정 날짜 이후에 수정 된 모든 파일을 새 하드 드라이브로 전송


2

나는 최근에 지난 학기의 두 번째 하드 드라이브가 나에게 실패하기 시작했고 새로운 드라이브를 고스트 할 수 없게되었습니다. 나는 여전히 실패한 첫 번째 hd를 가지고 있었으므로 드라이브를 고스트했지만 이제는 첫 번째 고 스팅 (첫 번째 실패한 hd-> 두 번째 실패한 hd) 날짜 이후 변경된 모든 파일과 항목을 새 드라이브 (모든 날짜-> 세 번째 작업 hd 이후 두 번째 실패한 HD 파일). 리눅스 터미널에서 이것을 스크립트하거나 다른 프로그램을 사용하는 쉬운 방법이 있습니까?

다음 명령을 사용하여 살펴 보았지만 처음 몇 개의 폴더가 아카이브 된 후에는 성공하지 못했고 실패했습니다.

find . -type f -mtime -58 |xargs tar --no-recursion -czvf allmodified.tgz

tar czvf allmodified.tgz `find . -type f -mtime -58`

찾기 코드가 작동하고 필요한 드라이브에서 모든 파일을 찾습니다.하지만 파일 구조로 아카이브하여 새 드라이브에서 파일의 압축을 풀 수있는 방법을 찾을 수 없습니다 (세 번째 hd 작업). 지난 2 개월 동안 있었던 곳에 보존하십시오.

나는 내 문제를 설명하는 데 최고가 아니므로 혼란 스러우면 질문을하고 최선을 다해 답변 해 드리겠습니다.

어떤 힌트라도 도움이됩니다. 대단히 감사합니다!

답변:


2

두 번째 예제에서 파일 이름의 공백을 보호하지 않았기 때문에 아마도 실패했을 것입니다. 호출은 약간 다릅니다.

find . -type f -mtime -58 -print0 | tar -czvf allmodified.tar.gz --null -T -

여기에서 문자로 find끝나는 파일 경로를 출력합니다 NUL. 이것들은로 파이프되어 tarstdin ( -T -) 에서 입력 을 널 ( --null)로 구분하여 읽습니다 . 은 --no-recursion당신이 당신의 타르볼의 디렉토리 자신을 포함하지 않습니다 때문에 필요가 없습니다.

참조 : GNU 타르 1.27 : 파일에서 6.3 독서 이름

그런 다음, 동일한 디렉토리에서 아카이브를 추출하여 파일이 속한 디렉토리에 배치합니다. 참고 tar합니다 기존 파일을 덮어 쓸 추출에. 이를 방지하려면 --skip-old-files옵션을 사용하십시오 .


두 번째 예제의 경우 파일 또는 경로에 공백이 포함되어 있으면 tar두 파일 foo barbaz( find출력)이 3으로 표시 되므로 실패합니다 tar foo bar baz. 이것에 대처하는 적절한 방법은 파이프의 출력 find-print0그 명령이 읽을 수있는 스위치가있는 경우, 다음 커맨드 NUL(GNU 대부분 유틸리티 않음) -delimited 입력.


이 방법을 사용하면 새 드라이브에서 tar를 압축 해제하고 그에 따라 파일을 배치 할 수 있습니까?
사무엘 케인

예. 샘플 파일 세트에서 테스트했습니다. tarball은 tar 디렉토리와 동일한 루트 디렉토리에서 추출해야합니다. 또한 tar는 기존 파일을 덮어 씁니다. 이를 방지하려면 --skip-old-files추출 할 때 사용하십시오 .
slhck

따라서 하나의 / media / ubuntu / OS 디렉토리에서 압축을 풀면 다른 드라이브의 tar를 / media / unbuntu / OS1 폴더로 이동해야합니까? 추출 할 때 --skip-old-files가 어떻게 작동하는지에 대해 자세히 설명해 주시겠습니까? 많은 것들. 도와 주셔서 감사합니다
Samuel Kane

, 및 및에 find … | tar …있는 동안 실행 한 경우 누락 된 파일 만 백업 에서 생성됩니다 . 어떻게 될지 잘 모르겠다면 먼저 작은 테스트 아카이브를 만들어보십시오. 또는 아카이브의 내용을 나열하고 tar가 뱉어내는 경로를 가진 각 파일을 작성한다고 상상하십시오 (예 : writes 이면 파일 이 작성 됨). 어쨌든 먼저 작은 테스트를 권장합니다. /media/ubuntu/OS/cd /media/ubuntu/OS1/tar -xcvf allmodified.tar.gz --skip-old-filesOS1OStar -tvf allmodified.tar.gztar -tvf./foo/bar/media/ubuntu/OS1/foo/bar
slhck

환상적입니다! 정말 고맙습니다! 테스트와 전체 프로젝트
Samuel Kane
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.