자동으로 파일 복사

자동으로 파일 복사

지난 24시간 동안의 문서의 모든 파일을 하나의 파일로 복사하고 싶습니다. 그런 다음 문서의 경로가 되어야 하는 파일의 각 줄을 선택하고 다른 디렉터리에 복사하고 싶습니다. 그런데 질문이 있어요.

복사된 파일에 있는 문서의 경로와 이름은 다음과 같습니다.

find ./Documents -mtime -1 -type f > ./Documents/renc.txt

이것은 작동합니다.

지난 24시간 동안 이 파일에서 생성되거나 수정된 ​​모든 문서와 해당 경로를 가져옵니다.

하지만 파일을 복사할 수 있도록 "b" 값을 지정하고 싶을 때는 그렇게 할 수 없습니다.

b= `sed -n "3p" ~/Documents/renc.txt`

bash: ~/Documents/test.odt: No such file or directory

확실하지 않은 경우, 내가 원하는 것은 ~/Documents/test.odt에서 renc.txt 파일을 가져와 값 "b"를 가져오는 것입니다. 그런 다음 또 다른 명령줄이 있습니다.

cp $b ~/Others

물론 그 후에는 여러 문서가 되므로 파일의 각 줄을 가져오는 루프를 추가하겠습니다.

당신의 도움을 주셔서 감사합니다,

인주

답변1

실제로 묻는 것이 "백업을 위해 매일 다른 디렉터리에 문서를 복사하려면 어떻게 해야 합니까?"라면 를 사용할 수 있습니다 rsync. 이 도구는 소스 트리의 모든 파일을 고려하지만 소스의 최신 파일만 복사합니다. 트리 문서:

rsync -av Documents/ /path/to/backupDocuments/

"매일 백업을 위해 내 문서를 원격 서버에 어떻게 복사합니까?"라고 묻는 경우 rsyncrun over를 사용할 수 있습니다 ssh. 이 버전은 필요한 부분만 복사합니다.부분소스 트리의 최신 파일 수:

rsync -av Documents/ remoteuser@remotehost:backupDocuments/

실제로 지난 24시간 내에 생성되거나 수정된 ​​문서만 찾아서 특정 위치에 복사하려는 경우(정확하게 24시간마다 스크립트를 실행하지 않으면 그보다 오래된 파일은 건너뛸 수 있다는 점을 명심하세요) , 그렇다면 이것이 도움이 될 것입니다. /tmp/copied_files.list도중에 파일 목록이 생성 됩니다 .

find Documents -depth -mtime -1 fprint /tmp/copied_files.list -print0 |
    pax -0 -d -rw /path/to/backupDocuments/

rsync모든 것을 고려했을 때 이것이 더 나은 선택이라고 추천합니다 .

관련 정보