お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2012-11-06 22:01:34

anjyu
メンバ
登録日: 2007-10-06

複数のディレクトリーにあるファイルを検索して一箇所にまとめるコマンド

 1万個程のJPEGファイルが複数のディレクトリーに分かれてあります。
Nautilusにて検索をして、一つのディレクトリーに1000個程まではまとめることができました。しかし、1万個を超えるとNautilusがダウンします。
ROX-filerを使ってみたのですが扱いきれませんでした。
cpコマンドも探ってみたのですが分かりません。
できたらコマンドでファイルの抽出をして、コピーすると安定してコピーできそうですができるかどうか?

 以上のような問題を解決できる方法がありましたらアドバイスをお願い致します。



 【環境】

 Ubuntu 12.04
   memory  2G

オフライン

 

#2 2012-11-06 23:04:13

hellfire
メンバ
From: 日本/神奈川県
登録日: 2006-11-21

Re: 複数のディレクトリーにあるファイルを検索して一箇所にまとめるコマンド

anjyu 様へ。

find コマンドをオススメします。

構文としては、

コード:

$ find <検索ディレクトリのトップのパス> -name '<ファイル名>' -exec cp {} <ファイルのコピー先> \;

<ファイル名> は、ワイルドカードが使えます。
-exec 以降が、検索したファイルの扱いになり、検索でヒットしたものが {} に代入されます。

具体例を示すと、~/Pictures 以下に複数の階層を持ったディレクトリやファイルがあり、
そこから、jpg ファイルのみを取り出して、~/Videos にコピーしたい場合は、以下のコマンドになります。

コード:

$ find ~/Pictures -name '*.jpg' -exec cp {} ~/Videos \;

png ファイルを対象としたいのなら、'*.jpg' が、'*.png' になります。
また、ファイルを移動させたいのなら、cp が mv になります。

http://itpro.nikkeibp.co.jp/article/COLUMN/20070514/270915/

オフライン

 

#3 2012-11-06 23:29:36

anjyu
メンバ
登録日: 2007-10-06

Re: 複数のディレクトリーにあるファイルを検索して一箇所にまとめるコマンド

hellfire 様

 素晴らしいですね。

できました。

只、コマンドラインでは、「・・・・~/Videos \;」の最後の「\」が入力できず手こずりました。
結局、「¥」でも問題なく通りました。
 Nautilusでは、重くてPCへ大きな負荷が掛かりますがコマンドでは物凄く軽くスムースに動き感動しました。

このようなコマンドの学ぶ本などあればご教示をお願いします。

 有難う御座いました。

オフライン

 

#4 2012-11-06 23:34:42

hellfire
メンバ
From: 日本/神奈川県
登録日: 2006-11-21

Re: 複数のディレクトリーにあるファイルを検索して一箇所にまとめるコマンド

anjyu 様へ。

おめでとうございます。

バックスラッシュの件ですが、それはフォントに依存するので、
「¥」=「\」と見ても間違いありません。

コマンドを学ぶための本ですが、必要に応じて、ネットで検索しています。
作業が面倒だと思った時に、検索すると案外皆、同じく面倒だと思っているようで、
大抵はそれで解決します。

最初から頭ごなしにコマンドの構文を覚えても、退屈します。
もし、本を購入するのであれば、作業の目的から入れる逆引き系の本が宜しいと思います。
私からはこれといったものを紹介できませんが…。

オフライン

 

#5 2012-11-07 11:45:59

anjyu
メンバ
登録日: 2007-10-06

Re: 複数のディレクトリーにあるファイルを検索して一箇所にまとめるコマンド

hellfire 様

 頭ごなしに覚えるのは大変です。
先のアドバイスにあるネット上の逆引きサイトなどを参考に、必要に応じて調べた方がよさそうですね。

 素早いお返事を有難う御座いました。

オフライン

 

Board footer

Powered by FluxBB