Linuxでは、コマンド「 cp ‘、‘コピーの基準 ‘は、ファイルとフォルダを別のフォルダにコピーするために使用されます。 Linuxでは、 GNU Coreutilsの一部としてデフォルトで利用できます。 ツールのセット。
cpコマンドの最も基本的な使用法 コピーするファイルを引数として指定し、ターゲットフォルダを最後の引数として指定します。
$ cp file1 file2 file3... fileN target_folder/
特定のファイル拡張子を持つファイルをコピーする
同じファイル拡張子のファイルをコピーすることもできます(例:.txt
、.jpg
、.mp4
)以下に示すように、ワイルドカード文字を一緒に使用します:
$ cp *.jpg *.mp4 *.mp3 media/
これにより、すべての JPEGがコピーされます 画像、 MP3、 およびMP4 マルチメディアファイルを「メディア」フォルダに保存します ‘。これはファイルにのみ使用できることに注意してください。上記の形式でフォルダをコピーしようとすると、フォルダが「空ではありません」であるという警告がスローされます。 ‘。
フォルダをコピーするには、'-r'
を指定する必要があります (再帰的 ) 国旗。再帰とは、そのフォルダー内のすべてのファイル、サブフォルダー内のファイルなどがすべてコピーされることを意味します。
$ cp -r folder1/ folder2/ file1 file2 target_folder/
ただし、「cp」内に方法はありません 特定の拡張子のファイルを再帰的にコピーします。 '-r'
のときはいつでも が指定されている場合、プログラムは常にサブフォルダー内のすべてのファイルをコピー対象と見なします。
ファイル拡張子の付いたファイルを検索してコピーする
これを実現するには、findコマンドを使用します。このコマンドは、ファイル名、拡張子、サイズなどのファイルまたはフォルダーのパラメーターに基づいて、Linuxでファイルおよびフォルダーを検索するために使用されます。
検索コマンドを使用します 特定のファイル拡張子を持つファイルを再帰的に検索し、この出力を cpに渡します。 それらをコピーするコマンド。
findコマンドを使用して特定の拡張子のファイルを検索する構文 は:
$ find <folder_to_search> -name ‘*.<extension>’
たとえば、現在のフォルダ内のすべてのJPGファイルを再帰的に検索するには:
$ find . -name '*.jpg'

最後に、この出力をcpコマンドにパイプする必要があります 。これを行うには、「xargs」を使用します 「cp」を作成するコマンド 「検索」の出力を検討してください その引数として。また、'-t'
を使用します cpのフラグ 、ターゲットディレクトリを指定します。これがないと、プログラムは「検索」の出力を考慮します。 ターゲットディレクトリとして。
$ find . -name '*.jpg' | xargs cp -t Pictures2/

したがって、拡張子'.jpg'
のすべてのファイル フォルダ「Pictures2」にコピーされました 。
結論
この記事では、Linuxで特定の拡張子を持つファイルを再帰的にコピーする方法を学びました。この方法は、少数のファイルを処理する場合に役立つことに注意してください。膨大な数のファイル(たとえば、数万)の場合、ファイルを再帰的にコピーするには、別のアプローチを使用する必要があります。
ご質問やご意見がございましたら、下のコメント欄でお知らせください。