
これはソース パス /Archive/testing/ で、AB1、AB2、AB3 の 3 つのフォルダーがあります。
これは宛先ディレクトリ/RXB2Bi_Archive/Archive_testing123/です。3つのフォルダ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
上記のように、すべてのファイルは宛先の必要な場所にコピーされます。