
소스 경로는 /Archive/testing/이며 세 개의 폴더 AB1, AB2, AB3이 있습니다.
이것은 대상 디렉토리 /RXB2Bi_Archive/Archive_testing123/입니다. 세 개의 폴더 AB1, AB2 및 AB3이 있습니다.
단일 명령으로 파일을 소스에서 대상으로 이동하고 싶습니다.(AB1 폴더 파일 AB1 폴더…등)
이 명령을 시도하고 있지만 모든 파일이 /RXB2Bi_Archive/Archive_testing123/로 이동되었지만 AB1 및 AB2 및 AB3으로 이동되지 않았습니다.
#!/bin/bash
Find /Archive/testing/ / -type f -mtime +190 -exec mv '{}' /RXB2Bi_Archive/Archive_testing123/ \;
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….
Source: /Archive/testing/ Destination: /RXB2Bi_Archive/Archive_testing123/
AB1 folder AB1 folder
AB2 folder AB2 folder
AB3 folder AB3 folder
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….......................
답변1
rysnc를 사용해야 합니다:
rsync -avz Archive/testing/ RXB2Bi_Archive/Archive_testing123/
예:
mkdir -p Archive/testing/AB{1..3}
touch Archive/testing/AB{1..3}/sourceFiles
결과를 보자:
$ tree
.
└── Archive
└── testing
├── AB1
│ └── sourceFiles
├── AB2
│ └── sourceFiles
└── AB3
└── sourceFiles
5 directories, 3 files
이제 대상을 만들어 보겠습니다.
mkdir -p RXB2Bi_Archive/Archive_testing123/AB{1..3}
touch RXB2Bi_Archive/Archive_testing123/AB{1..3}/destFiles
결과를 확인해 봅시다:
$ tree
RXB2Bi_Archive/
└── Archive_testing123
├── AB1
│ └── destFiles
├── AB2
│ └── destFiles
└── AB3
└── destFiles
4 directories, 3 files
이제 다음 명령을 실행하십시오.
$ rsync -avz Archive/testing/ RXB2Bi_Archive/Archive_testing123/
sending incremental file list
./
AB1/
AB1/sourceFiles
AB2/
AB2/sourceFiles
AB3/
AB3/sourceFiles
sent 268 bytes received 84 bytes 704.00 bytes/sec
total size is 0 speedup is 0.00
확인 결과:
$ tree RXB2Bi_Archive/
RXB2Bi_Archive/
└── Archive_testing123
├── AB1
│ ├── destFiles
│ └── sourceFiles
├── AB2
│ ├── destFiles
│ └── sourceFiles
└── AB3
├── destFiles
└── sourceFiles
4 directories, 6 files
위에서 볼 수 있듯이 모든 파일은 대상의 필요한 위치에 복사됩니다.