GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで特定の種類のファイルを検索してあるディレクトリから別のディレクトリにコピーする方法

外付けハードディスクがめちゃくちゃです。ええ、私はすべてのファイルを1つのディレクトリにダンプしたからです。ファイルやフォルダを正しい順序で整理するのが面倒でした。特定のファイルを探すのに時間がかかりました。そのため、特定の種類のファイルを別々のディレクトリに整理すると、はるかに良いと思いました。ファイルの種類ごとにフォルダを作成し、それぞれのフォルダに保存することにしました。たとえば、すべてのメディアファイル(オーディオとビデオ)は、マルチメディアというディレクトリに移動する必要があるとします。 、画像ファイルを画像に フォルダ、および ostechnixと呼ばれるフォルダへの公式関連のもの 。

ただし、特定の種類のファイルを手動で見つけてコピーするのは、面倒で非常に時間のかかる作業です。多数のファイルがある場合、すべてのファイルを見つけてコピーするのに数時間かかります。そこで、グーグルで簡単に検索して、適切な解決策を見つけました。 Unixライクなオペレーティングシステムで特定の種類のファイルをあるディレクトリから別のディレクトリにコピーしたい場合は、次の方法があります。これを行うには多くの方法がありますが、次の方法は簡単で簡単に実行できることがわかりました。

Linuxで特定の種類のファイルを検索してあるディレクトリから別のディレクトリにコピーする

'find'コマンドを使用してファイルを整理します。 Findコマンドは、ほとんどのUnixライクなディストリビューションにプリインストールされているので、わざわざインストールしないでください。このガイドでは、 test1というディレクトリからmp3ファイルをすばやく見つけてコピーする方法を紹介します。 test2という別のディレクトリに移動します 。

ダウンロード -無料の電子書籍:「BeyondLinux®FromScratch-バージョン6.3」

テストディレクトリの内容を確認しましょう。

$ ls /home/sk/test1

出力例:

'Bombay Rockers.mp3' 'Marconi Union - Sleepless.mp3' wiua9.jpg
 books.txt Maruvaarthai.mp3

上記の結果からわかるように、test1ディレクトリには3つのmp3ファイルがあります。これらのmp3ファイルをtest2ディレクトリにコピーしましょう。これを行うには、次のコマンドを使用してtest1ディレクトリに移動します。

$ cd /home/sk/test1/

次に、次のコマンドを実行して、拡張子が .mp3に一致するすべてのファイルを見つけてコピーします。 。

$ find -iname '*.mp3' -exec cp {} /home/sk/test2/ \;

上記のコマンドを分解して、各オプションの機能を見てみましょう。

  • 検索 -Unixライクなシステムでファイルやフォルダを検索するコマンドです。
  • -iname'* .mp3' -拡張子が.mp3のファイルを検索します。
  • -exec cp -「cp」コマンドを実行して、ファイルをソースディレクトリから宛先ディレクトリにコピーするように指示します。
  • {} -'find'コマンドで見つかったファイルのファイル名に自動的に置き換えられます。
  • / home / sk / test2 / -一致するファイルを保存するターゲットディレクトリ。
  • \; -実行するコマンドが完了し、次の一致時にコマンドを再度実行することを示します。

クリア?良い!それでは、test2ディレクトリをチェックして、ファイルが正しくコピーされたかどうかを確認しましょう。

$ ls /home/sk/test2

サンプル出力は次のようになります:

'Bombay Rockers.mp3' Maruvaarthai.mp3
'Marconi Union - Sleepless.mp3'

ご覧のとおり、拡張子が.mp3のすべてのファイルがtest1からtest2ディレクトリにコピーされています。同様に、上記のように、他の種類のファイルを選択した別のディレクトリにコピーできます。

上記のコマンドは、すべての*.mp3ファイルをソースディレクトリとそのサブディレクトリからもコピーします。それをしたくない場合は、 -maxdepthを使用してください 国旗。たとえば、次のコマンドは、すべての.mp3ファイルをソースディレクトリからのみコピーし、そのサブディレクトリからはコピーしません。

$ find -maxdepth 1 -iname '*.mp3' -exec cp {} /home/sk/test2/ \;

このようにして、特定の種類のファイルを検索するときに多くの時間を節約できます。このトリックは、あるディレクトリから別のディレクトリに大量の異なる種類のファイルを転送する必要がある場合に役立ちます。

関連記事:

  • Linuxでディレクトリ構造を維持しながら特定のファイルタイプをコピーする

詳細については、manページを参照してください。

$ man find

'Classifier'という名前のスクリプトもあります これにより、ファイル拡張子に基づいてファイルが自動的に別のディレクトリに整理されます。詳細については、以下のリンクをご覧ください。

  • 特定のフォルダにある同様の種類のファイルを自動的に整理する方法

これがお役に立てば幸いです。


Linux
  1. Linuxでパーミッションをあるファイルから別のファイルにコピーまたは複製する方法

  2. 検索を使用して特定のディレクトリを検索し、1つのディレクトリを除くその中のすべてのファイルを削除しますか?

  3. すべてのファイルをあるディレクトリから別のディレクトリに移動 (および上書き) する方法は?

  1. すべてのファイル(非表示を含む)をあるディレクトリから別のディレクトリに移動するにはどうすればよいですか?

  2. 別のサーバーとの間でファイルやフォルダーをコピーする方法を学ぶ

  3. フォルダ構造 (ファイルなし) をあ​​る場所から別の場所にコピーする

  1. あるディレクトリから別のディレクトリに最新の上位 10 個のファイルをコピーする方法は?

  2. Linux / Unixで複数のファイルの名前をある拡張子から別の拡張子に変更する方法は?

  3. Linux で別のユーザーのホーム ディレクトリからファイル/フォルダをコピーするにはどうすればよいですか?