11.11.11.11/:/path/from
(Ubuntuシステム)にあるリモートディレクトリ(SSHを有効にする)があります。百万小さな.txt
ファイル、簡単なls
コマンドの実行、および/path/from/
WinSCPを使用して開くことも可能であるため、ディレクトリを開くことはできません。百万 ファイル数。
私の目標は、特定の名前パターンを持つ何千ものファイルを見つけることです。そして別のリモート場所(たとえば22.22.22.22:/path/to
)にコピーします。
これまでに試したことは次のとおりです。
scp --exec=`find /path/from -name 'A*random*' -mtime +0 -mtime -10` [email protected]:/path/to
/path/from/
しかし、ディレクトリに実際に何百万ものファイルが含まれていると言ったように、それを行うには非常に長い時間がかかります。
より速くするための提案はありますか?使用rsync
?どうすればいいですか?最後の修正日を使用して結果を制限する方法だけを知っているので、find
結果を特定の数に制限するにはどうすればよいですか?1000
-mtime
答え1
おそらくfind
これを組み合わせて、cpio
あるコンピュータ上の多くのファイルからストリームを作成し、cpio
別のコンピュータからファイルを抽出できます。
ssh user@source "cd sourcedir && find ./ -xdev -name 'A*random*' -print | cpio -o -Bav -H crc" | ssh user@target "cd destinationdir && cpio -i -vumd"
この(テストされていない)ソリューションは次のものに基づいています。https://www.netroby.com/view/3602。ここではfind
、およびのパラメータの説明を見つけることができますcpio
。
答え2
努力するlocate
このアプリではfind
遅すぎるようです。
ファイルを見つけるためのより速いツールがあります。
locate
。locate
最新のファイルを見つけるために更新する必要があるデータベースを使用してください。updatedb
使用したデータベースを作成または更新しますlocate
。データベースがすでに存在する場合は、変更されていないディレクトリを再度読み取らないように、そのデータが再利用されます。find
この更新プロセスは、データベースが更新されるときよりも非常に高速ですlocate
(そして、すべてのファイルが見つかったときよりもはるかに高速ですfind
)。
使用法
作るそして次に修正するデータベース
sudo updatedb
探す関連文書。
locate
いくつかの便利なオプションが提供されますがfind
。便利なパターンあなたの目的のために。scp
変更してから、またはと組み合わせることができる2つのコマンドラインを使用することをお勧めしますrsync
。ファイル数を制限できます。
--limit
/path/from/
サブディレクトリでのみ検索し、サブディレクトリで検索しない場合locate --regex --limit 1000 '/path/from/A.*random.*'
/path/from/
自体ではなくサブディレクトリから検索する場合locate --regex --limit 1000 '/path/from/.*/A.*random.*'
man locate
詳細は参照してください。
一般メッセージ
2019-02-12
日付ごとに1つのサブディレクトリ(、2019-02-13
...)など、各ディレクトリにあまりにも多くのファイルがないように複数のサブディレクトリを使用するなど、これらのファイルの作成と保存方法を変更する必要があります。または、より良い点は、多くの写真マネージャが写真ファイルを保存するように、
- 毎年1階層のサブディレクトリ
- その年の各月の次のレベルのサブディレクトリ
- ファイルを保存するために使用される毎月の各日付の最後のレベルのサブディレクトリ。
一部のファイルを削除することもできます(たとえば、古いファイルの場合など)。
答え3
- tar、zip、またはフォルダの下のすべてのアイテムを1つのファイル
source.tar
に圧縮します。tar -cf /sourcedirectory
ただし、これは1つのファイルに100,000以上のファイルがすべて含まれているため、容量が大きくなります。 - 必要に応じてこのファイルを転送してください。
- 宛先に到着したら、
tar -xf source.tar
100,000を超えるファイルを含む元のフォルダ構造に再度解凍または解凍します。