単一のコマンドを使用して複数のディレクトリを1つにコピーできますか?

単一のコマンドを使用して複数のディレクトリを1つにコピーできますか?

私はphotorecを使用してハードドライブからデータを回復し、現在ホームディレクトリから貴重なスペースを/home/ray/recup_dir.1占める多くのディレクトリがあります。/home/ray/recup-dir.598

別のディレクトリにコピーしたい/media/ray/"Seagate Expansion Drive"/RecupsA

1つのコマンドを使用してこれをどのように実行できますか?

答え1

私の心に浮かんだ最初の解決策はrsyncでした。すべてを除外します。パターンに一致するディレクトリを含みます。 rsyncを使用して同じホストに情報をコピーするのは奇妙だと思います。通常、リモートコンピュータにコピーするために使用されます。しかし、localhostにコピーできない理由はありません。

rsync -ravz --include '/home/ray/recup_dir.*' --exclude '*' user@localhost

ravzの説明:

-r recursive copy
-v verbose
-a : archive mode. Preserves symbolic links, file permissions, user & group ownerships,  timestamps
-z : compress file data


2番目のオプションはチートを書きますmc。これが始まるでしょう。真夜中司令官を使用すると、複数のディレクトリを選択してコピーできます。


3番目のオプション:検索。

find /home/ray/recup_dir.\*  -exec cp {} /media/ray/"Seagate Expansion Drive"/RecupsA \;


4番目のオプション:シェルを使用します。 /home/ray/に移動して

for a in recup* ; do cp -r $a /media/ray/"Seagate Expansion Drive"/RecupsA; done

答え2

再帰オプションcpと一緒に標準を使用してください。r

cp -r /home/ray/recup_dir.{1..598} "/media/ray/Seagate Expansion Drive/RecupsA"

しかし、この場合は移動する方が良いと思います。

mv /home/ray/recup_dir.{1..598} "/media/ray/Seagate Expansion Drive/RecupsA"

これら2つのコマンドは、最後のパラメータのみを次のように処理します。目的地そして以前のすべて源泉(ファイルまたはディレクトリ)。

関連情報