下のように各フォルダ内にreadme.txtファイルだけを特定のフォルダ内に
コピーしたいのですが、ファイル名が同じなので、元のフォルダ階層のように
フォルダを作成して、そのファイルだけがコピーされるようなfindを使った
器用な方法はできるのでしょうか?

私は、次の段階で躓いて折ります。
find ./ -name ".forward"


execを使い方法は、
find img/ -type d -exec chmod 604 {} \;
のようなことは使ったことはありますが、通過したフォルダを作成して、ファイルをコピーする
ような方法はどのように記述したらよいか、わかりません。

A
+-- a1.txt
| a2.txt
| readme.txt
B
+-- b1.txt
| b2.txt
| readme.txt
C
+-- c1.txt
c2.txt
readme.txt

このQ&Aに関連する最新のQ&A

A 回答 (1件)

例:下記のようなディレクトリ構成で各ディレクトリ(A,B,C)配下にあるreadme.txtをディレクトリsavedirにディレクトリを作成しつつコピーする場合。



ディレクトリ構成例
+A-+-- a1.txt
|  +-- a2.txt
|  +-- readme.txt
|
+B-+-- b1.txt
|  +-- b2.txt
|  +-- readme.txt
|
+C-+-- c1.txt
|  +-- c2.txt
|  +-- readme.txt
|
+savedir ←コピー先


ディレクトリ(A,B,C,savedir)があるディレクトリ配下に移動後以下のコマンドを実行。

# find A B C -name "readme.txt" -print | cpio -pdv savedir
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「古い圧縮ファイル」の確認方法

Dドライブのディスクのクリーンアップをしたいのですが、実行できるものが、「古い圧縮ファイル」の削除しかありません。

「古い圧縮ファイル」がどのプログラムかを確認する方法を教えてください。

また、圧縮されたファイルの名前は青くなるらしいのですが、見つかりません。どうしてでしょうか
圧縮ファイルは1G弱あります。

Aベストアンサー

http://www.atmarkit.co.jp/fwin2k/win2ktips/106cleanup/106cleanup.html

初期設定では、50日以上アクセスの無かったファイルに対して、圧縮が行われます。
当然、圧縮してからでないと、ファイル名は青色にはなりませんので、ディスク・クリーンアップでの候補段階では、黒色のままです。


尚、設定によっては青色表示にならない場合も有りますけど。

http://121ware.com/qasearch/1007/app/nec.jsp?005084

Qfind -perm -o+w -exec ls -la {} \;

タイトルのコマンドに関しまして、条件(他のユーザーに書き込み権限が与えられているファイルを検索)にマッチしたファイルの詳細を表示するコマンドで間違いないと思いますが、『{}』 は何を指しているのでしょうか?
これが、ワイルドカードの『{}』を表しており、中身を指定していないのならば、[]でも代用できるはず。と思い、

$find -perm -o+w -exec ls -la [] \;

としたら、lsコマンドに怒られてしまいました。
{}を指定しなかった場合は、期待に沿わない実行結果(マッチしたファイルの数だけ ls -la が実行される)が得られます。

『{}』は、何を意味しているのでしょうか?

ご回答の程、お願いします。

Aベストアンサー

man find
で終わるとアレなので:
-exec を使うと条件を満たす各ファイルに対してコマンドを実行しますが, そのコマンド中に {} があるとそれは「条件を満たすファイルのファイル名」に置き換わります.

Qファイルの圧縮方法

AVIやMPGの画像ファイルを圧縮する方法を教えてください。900mb位のファイルをCD-Rに落とし込める700mbまで圧縮したいんですが。できれば、zipやlzhなどの後で解凍しなくてはいけないような圧縮方法ではなく、多少画像が荒くなってもファイルを単純に縮小させるような方法を教えていただけると有り難いのですが。。
因みに、TMPGEncを試してみたんですが、どうもうまくいかなくて。。ファイルサイズが元のファイルより逆に大きくなってしまうんです。
すいませんが、宜しくお願いします。

Aベストアンサー

画像圧縮?くす(^^
エンコはTMPGEncやaviutlでやるのがふつーです。
ええ 絶対! 
aviutl
http://ruriruri.zone.ne.jp/aviutl/

zipとかで圧縮しても意味ありません サイズ的に。

で、TMPGEncで元より大きくなるのは問題は
コーデック、画像サイズ、 音声ファイルなど
理由はいっぱいあります。対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=625581

だから圧縮というか再エンコードが面倒なら
ファイルをテキトーな部分でカットする方向性はどお?
CD-R 2枚に保存 450 450 くらいでカット。
対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=610331
ではでは!

追伸
カンタンにならrmファイルに変更かなあ
でも画質は落ちますよ
ネット配信 ストリーミング形式でどぞ!
RealplusG2とかRealEncoderで変換
でもaviでもないしmpegでもないですけど、どお?

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=610331

画像圧縮?くす(^^
エンコはTMPGEncやaviutlでやるのがふつーです。
ええ 絶対! 
aviutl
http://ruriruri.zone.ne.jp/aviutl/

zipとかで圧縮しても意味ありません サイズ的に。

で、TMPGEncで元より大きくなるのは問題は
コーデック、画像サイズ、 音声ファイルなど
理由はいっぱいあります。対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=625581

だから圧縮というか再エンコードが面倒なら
ファイルをテキトーな部分でカットする方向性はどお?
CD-R 2枚に保存 450...続きを読む

Qchmod find パイプ 一緒にやりたいとき

こんにちは、はじめまして。下記のようにすると、正常に実行されるのですが、

chmod 766 `find ./* -type f -print` \; || ll ./*

下記のような、エラーメッセージでます。なぜなぜ??

chmod: cannot access `;': そのようなファイルやディレクトリはありません
(やっていること: 自分の(カレント)ディレクトリの下のファイル(通常ファイル) 全部自分に実行権つけて、その結果を "|(パイプ)" で渡して、ls -l で全部表示 )

はじめての質問ですので、よろしくお願いねー??

Aベストアンサー

chmod 766 `find ./* -type f -print` || ll ./*

で問題ないと思いますが。

Qファイルの圧縮方法が解りません

窓の杜やベクター等に置かれている、フリーの圧縮、解凍ソフトをダウンロードしていますが、テキストファイルや、画像ファイルの圧縮方法が解りません。何方か教えて頂けませんか?

Aベストアンサー

ソフトの開発者のサイトで質問することをお奨めします。

ソフトごとに操作方法が異なりますので、使用しているソフト名すらない状態では誰も必要とする回答を出せません。

窓の杜やベクターでは開発者のサイトへのリンクがありますから、そこからアクセスできますよ。

Qfind -execの末尾の{} \;の意味

末尾の{} \;を省略するとexecオプションが正しくうごきません。
これはいったい何を意味しているのでしょう?
今までは、おまじないと思っていましたが、正しい意味を知りたくなりました。

Aベストアンサー

> {}
findの条件式に一致したファイルのファイル名に置き換えられます。

> \;
「;」は、execで実行するコマンドのコマンドラインの最後を意味します。
ただ、「;」はシェルで意味を持っている文字なので、シェルによって展開されないように、つまり文字「;」そのものとするために「\」でエスケープします。

Qpsdファイルの圧縮方法

psdファイルの圧縮方法を教えてください。(基本的質問で恐縮ですが)
win98です。なお、ファイルは9MB程度ですが、圧縮したものを解凍する際、鮮明度が落ちずに元通りの画像で開けますでしょうか?

Aベストアンサー

●大きなサイズのファイルを分割して送付

+Lhaca 1.20 デラックス版での分割方法
http://park8.wakwak.com/~app/Lhaca/

 1. インストールは、ダウンロードした Lhaca120.exe を実行する。
 2. デスクトップに作成された +Lhaca のショートカットに、
   対象のファイルをALTキーを押しながらドロップする。
 3. 保存場所を聞いてくるので、望みの場所を指定する。
   (圧縮形式は、相手が解凍できる形式を選ぶ。)
 4. 分割されたファイル群と結合用のバッチファイルが作成される。
   (デフォルトでは 1.2MB を上限として分割される。)
   (このサイズは +Lhaca で変更できる。)
 5. (4)のファイル全てを、容量を超えないようにメールに添付して送信
   する。
   (添付ファイル総数を本文に明記すること。)
 6. 受け取った側は、全ての添付ファイルを一箇所に集めて、バッチファ
   イルを実行する。
   (操作手順は、本文に明記すること。)
 7. 分割されたファイルが結合されるので、結合された圧縮ファイルを解
   凍する。
 8. 9MBのファイルが解凍されるので、作業する。


これでどうかな!?

※他の圧縮ソフトも分割機能が備わっていると思うが・・・

●大きなサイズのファイルを分割して送付

+Lhaca 1.20 デラックス版での分割方法
http://park8.wakwak.com/~app/Lhaca/

 1. インストールは、ダウンロードした Lhaca120.exe を実行する。
 2. デスクトップに作成された +Lhaca のショートカットに、
   対象のファイルをALTキーを押しながらドロップする。
 3. 保存場所を聞いてくるので、望みの場所を指定する。
   (圧縮形式は、相手が解凍できる形式を選ぶ。)
 4. 分割されたファイル群と結合用のバッチファイルが作成される。
   (...続きを読む

Qfind -exec内のshに変数を渡す方法

次のコマンドを実行しても、find -exec内の${from_dir}の内容が渡らず、/*.csvと解釈されます。
どのようにすればよろしいのでしょうか。

from_dir=/home/ksasaki
find /home/s???????/ -maxdepth 0 -exec sh -c 'cp ${from_dir}/*.csv {}310/; ' \;

宜しくお願い致します。

Aベストアンサー

新たに起動したシェルから変数が見えないためだと思います。

(1)見えない
$ foo=string
$ sh -c 'echo $foo'

(2)見える
$ export foo=string
$ sh -c 'echo $foo'

(3)現在のシェルが展開
$ foo=string
$ sh -c "echo $foo"

QNTFS圧縮したファイルを全部まとめて戻す方法

NTFS圧縮したファイルをプロパティからひとつひとつチェックをはずして戻すのではなく、圧縮されたファイルを全部まとめて元に戻す方法ってあるのでしょうか?

Aベストアンサー

圧縮を解除したいファイルを全て選択した状態で
→プロパティ→NTFS圧縮のチェックを外す→OK

それらのファイルがフォルダに入っているなら
フォルダのプロパティからやってもいい。
(サブフォルダにも適用するか尋ねられるからOKにする)

Qdir /A /B /S *.txtをLinuxで

Windowsで

C:>dir /A /B /S *.txt

を実行すると、そのディレクトリ以下の*.txtファイルが
C:\abc\def\hij.txt
C:\abc\def\klm.txt
...
と出力されます。

これをLinux上で出来ないでしょうか。
ネット上で調べたのですが、私の実力では"/S"と同じことがLinuxでは出来ないようです。

Aベストアンサー

質問内容を正しく解釈しているかわかりませんので間違っていたらごめんなさいです。

例えば、/home以下の*.txtを出力するのならこんな感じでしょうか。

find /home -type f -name "*.txt"

おそらくlsコマンドではうまくいかないと思いますので。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報