![자동으로 파일 복사](https://linux55.com/image/128280/%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%20%EB%B3%B5%EC%82%AC.png)
지난 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/
"매일 백업을 위해 내 문서를 원격 서버에 어떻게 복사합니까?"라고 묻는 경우 rsync
run 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
모든 것을 고려했을 때 이것이 더 나은 선택이라고 추천합니다 .