这是源路径 /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
正如您上面看到的,所有文件都被复制到目标中所需的位置。