タグ

findに関するrichard_rawのブックマーク (14)

  • findコマンドの使い方を簡単に理解するための7つのルール+実践的な知識 - Qiita

    はじめに find コマンドの使い方は、ざっくり調べただけではよくわからんとなりますが、見逃しがちなルールを知れば簡単に理解できます。find コマンドに限りませんが使い方を調べるのが面倒だからと曖昧な理解で使うと逆にもっと分からなくなって時間がかかります。急がば回れ、理解して正しく使ったほうがシンプルで楽で簡単です。この記事では find コマンドの使い方を理解するために必要なルールと使い方の実践的な知識をまとめました。 Q&A(?): -type や -perm の説明はしないの? ⇒ それらはドキュメントを読むか検索すればすぐにわかることで難しいポイントではありません。重要なのは基のルールを理解することです。 関連記事 POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! 移植性の話はこちら ⇒ findコマンドのオ

    findコマンドの使い方を簡単に理解するための7つのルール+実践的な知識 - Qiita
    richard_raw
    richard_raw 2023/10/23
    なるほど、オプションではなく評価式。/xargsは並列化以外には使わない。
  • POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき!ShellScriptBashshellPOSIX はじめに find の出力を xargs にパイプで渡すというのはよく見かける使い方ですが、find -print0 | xargs -0 が使えない POSIX 準拠のシェルスクリプトでは find -exec {} + を使った方が良いです。安全かつ十分に速いからです。よく見かける -exec {} ; ではなく -exec {} + ですので間違えないようにしてください。多くのケースでは + の方が優れているのですが ; ばっかり使われているのを見ると、意外と知られてない気がします。 少しだけ予備知識として、-exec {} ; は -exec {} \; と ; をバックスラッシュでエスケープするのがよく見る使い方

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
    richard_raw
    richard_raw 2021/09/14
    私は1999年で知識が止まってました。";"と"+"でそんなにパフォーマンスが違うとは……。というか"-print0"はPOSIX標準じゃなかったのか。/(追記)「;」は単体実行で「+」はグループ実行。
  • あるファイルがn日以上更新されてないか調べる方法 - (ひ)メモ

    find -mtime を使う # 最終更新から 24 時間以上経過しているか if [[ "$(find /path/to/file -mtime +0)" != "" ]]; then echo 'OLD!' else echo 'NEW!' fi -mtime +0 がなぜ「24時間以上前」になるのか?について: http://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html より -mtime n ファイルの最終内容更新日時が、基点となる時刻から計算して n 日前に当たれば、真を返す (訳注: 基点となる時刻は、デフォルトでは find を実行している今現在である)。 (snip) なお、デフォルトの動作のように、現在時刻から数えて 24 時間前から 48 時間前までを 1 日前とする つまり、 1日前 = 24時間前から48時

    あるファイルがn日以上更新されてないか調べる方法 - (ひ)メモ
    richard_raw
    richard_raw 2020/12/21
    -mtime n“n日前 = n*24時間前から(n+1)*24時間前” これは分かりづらい。
  • 最近覚えたシェルスクリプトの小ネタ - カメニッキ

    シェルスクリプト神から教えていただいた。忘れないように書いとく (追記)聞いて、自分の記憶した内容をそのまま書いちゃったので、ちゃんとマニュアル通りか確認してなかったので反省 $ man bash 目次 xargsでfunctionを叩く 連想配列もどき 変数間接参照 なんでもかんでもawkで整形しない 文字列の末尾から数えて○文字目を△文字取り出す 番外編:やたら if [ ]; then を使わない ※Markdownで目次の書き方がわからんかった xargsでfunctionを叩く 下の例だと find xxxx | xargs cp xxxx ってかけば良さそうでイマイチだけど、もっと複雑な処理やらせたいときに。 前はこう書いてた #!/bin/bash for x in `find /var/www -name xxx` do cmd="cp -v /hoge/fuga/xxx

    最近覚えたシェルスクリプトの小ネタ - カメニッキ
    richard_raw
    richard_raw 2016/06/30
    「export -f」は知りませんでした!/何でもかんでもfindコマンド使い過ぎじゃないですかね。あとbasenameェ……。
  • xargsコマンドで覚えておきたい使い方・組み合わせ7個(+1個) | 俺的備忘録 〜なんかいろいろ〜

    LinuxやUNIXで、コマンドちょっと組み合わせて利用する際、非常に役に立つxargsコマンド。 今回は、このxargsコマンドで覚えておきたい使い方・組み合わせについて紹介する。 1.基的な使い方 まず、そもそもこのコマンドはどういう使い方をするのか。 基的には、以下のようにパイプでつなぐことで前のコマンド(コマンド1)で取得した値(標準出力)を利用してxargsで指定した別のコマンド(コマンド2)に引数として渡して実行させる事ができるコマンドだ。 コマンド1 | xargs コマンド2 [root@test-centos7 ~]# find /work -type f /work/test2.txt /work/test.txt /work/aaaaa.txt /work/bbbbb.txt /work/ccccc.txt /work/ddddd.txt /work/sample

    richard_raw
    richard_raw 2015/07/28
    xargsはあまり使いこなせていないので参考になります。でもBSDとGNUだと挙動がちょっと違う……。
  • find/xargsを使ったファイル・ディレクトリ名の一括置換/一括作成コマンド一覧

    業務で楽するためのUNIXテクニック集 ファイル・ディレクトリ名の一括置換/一括作成 この記事は2008年~2009年頃に翔泳社で連載していた「業務で楽するためのUNIXテクニック集」の原です。 はじめに この連載では、UNIX系OSをコマンドライン上から効率よく利用するために知っておくべきテクニックや、便利な小技を紹介していきます。 今回は、第0回、第1回で紹介したfind/xargsコマンド、シェルの変数展開、制御構造を利用した「ファイル・ディレクトリ名の一括置換」に関するテクニックを紹介します。 また、「ファイルやディレクトリの一括作成方法」「シンボリックリンクの作成方法」に関するテクニックも紹介します。「ファイル名の置換」テクニックを検証する際の、コマンド確認環境構築にご利用ください。 関連記事 シェル制御構造と正規表現の基礎 grepを使った便利なコマンド一覧 find/xar

    find/xargsを使ったファイル・ディレクトリ名の一括置換/一括作成コマンド一覧
    richard_raw
    richard_raw 2014/11/20
    『サブディレクトリに渡るすべてのファイルの拡張子を「.txt」に変更する』が役立ちました。readコマンドのオプションとかあまり気にしてなかった。/唐突にperlが出てくるのは何とかなりませんかね。
  • findのemptyとdeleteが便利 - マツモブログ

    4年前に「findのexecが便利」なんて事を書きましたが・・・。 http://d.hatena.ne.jp/yumatsumo/20070516 成長したのかしてないのかまた感涙もののfindのオプションを発見しました。 今回はemptyとdeleteが便利!というお話です。 きっかけ mod_disk_cacheのhtcachecleanがどうも粛清が緩くてinode溢れに悩んでいた訳です。 もう頼ってられない、自分でやろう!粛清じゃー!という訳で以下の2つのルールでやろうと思ってはまりました。 ・更新日がCacheMaxExpireを超えたファイルは削除 ・空のディレクトリは削除 で、更新日はmtimeでほげほげで良いんですが、rmdirで空ファイル削除しようと思ったんですが中身にファイルが残ってるとステータスがエラーとなってしまい健全性が確認できません。 $ find ./ -t

    findのemptyとdeleteが便利 - マツモブログ
    richard_raw
    richard_raw 2014/10/16
    おお、Macのfindでも空のディレクトリが削除できた!でも消せないディレクトリがあるなーと思ったらいつの間にか.DS_Storeができてました。
  • findコマンドで複数の名前条件を指定 - 日々の報告書

    何となく「codeなにがし」を見ていたところ、findコマンドを利用して複数の拡張しにマッチしたファイル一覧を取得する方法が書いてあった。 codeなにがし::linuxでテキストファイルだけをコピー 質問者は*.c *.cc *.h *.hhなどの拡張子を持つファイルの一覧を取得したいとのことで、このためには次のようにfindを実行すればよいそうな(一部省略)。 $ find . \( -name \*.c -o -name \*.cc -o -name \*.h -o -name \*.hh \) -print 「-name」オプションは検索対象のファイルの名前を指定するオプション。これをORを意味する「-o」オプションで複数つなげることで、複数の拡張子のどれか1つにマッチするファイルを見つけ出すことができる。ちなみに「-o」は「-or」とも書ける。 僕も以前似たようなことをしたことが

    findコマンドで複数の名前条件を指定 - 日々の報告書
    richard_raw
    richard_raw 2014/06/04
    "-o"は何となく覚えてたけど"\("と"\)"でくくるのは失念してました。
  • OSに付属するシェルスクリプトを読んで技術を盗む

    今回から、OS付属のシェルスクリプトを読んでいく。多くの人が使っているスクリプトを読むことで、シェルスクリプトならではの書き方、テクニックを身に付けることができるはずだ(編集部) 他人の技術を盗まなければ進歩はない 外国語をマスターするにも、楽器の演奏を覚えるにも、上達するにはただ練習するだけではダメだ。素晴らしいお手を見つけて、よく観察し、何度もまねることが必要だ。お手から技術を「盗む」ことが大切だということだ。 プログラミングでも同じことが言えると思う。文法を覚えて、ただひたすらプログラムを書くだけではなかなか上手にならない。スキルのある人のコードを見て、技術を盗もう。開発チームのメンバーそれぞれが書いたコードを持ち寄って、お互いに批評し合う「コードレビュー」に参加している、あるいはリーダーとして主催しているという人は多いと思う。このコードレビューも、人から技術を盗む良い機会と言え

    OSに付属するシェルスクリプトを読んで技術を盗む
    richard_raw
    richard_raw 2012/01/30
    そういえばあんまり読んだことないです。/typeとかlocalも使ったことないですな。
  • xargs を使ってカジュアルに並列処理 - たごもりすメモ

    シェルからでも重い処理というのはちょこちょこあって、例えば超デカいログファイルを移動して圧縮したりというお仕事は世界中のあらゆる場所で毎日行われていたりする。コマンドラインからでも大量の圧縮済みログファイルをいっぺんに展開したい、とか。 あるディレクトリ以下に存在するたくさんのファイルを(圧縮済みのものを除いて)全部 bzip2 圧縮したい!と思ったら、とりあえずさくっと次のようにコマンドラインで叩けばいい。 $ find . -not -name '*.bz2' | xargs bzip2 これで、まあそんなに問題なく効率的にbzip2圧縮ができる。だがしかし。 最近は複数コアのCPUが普通に転がってるし、あまつさえHyperThreadingが有効になってたりしてOSから見える論理CPU数がハンパない。普通に8とかある。その一方で複数コアを使用してくれるコマンドというのはあんまりなくて

    xargs を使ってカジュアルに並列処理 - たごもりすメモ
    richard_raw
    richard_raw 2011/05/14
    P, Lオプションを併用して並列処理!職場PCはPen4だけど試してみましょうかね。
  • 【レポート】Linuxでよく使うコマンド50 | エンタープライズ | マイコミジャーナル

    Guides, HowTos and Tips for Technology Geeks - The Geek Stuff UbuntuやFedoraなど人気のある最新のディストリビューションはインストールから利用、アップデートまでよく組まれており、ターミナルが使えなくても問題なく利用できることが多い。しかし、ある程度慣れてきたらGUIを使うよりもCUIを使う方が作業効率がいいことがあることもまた事実。また、サーバとして運用している場合にはCUIで利用するしたり、遠隔ログインしてCUIベースのターミナルで作業することも多い。 50 Most Frequently Used UNIX / Linux Commands (With Examples)において、UNIXやLinuxでよく使われるコマンドが50個紹介されている。ビギナーユーザにはコマンドの参照リストとして、中級者以上のユーザには知

    richard_raw
    richard_raw 2010/11/14
    なんでtarやねん。/Linuxでwhatis使えましたっけ?/原文読めということですね、わかりました。
  • めっちゃ便利やねん find コマンドのオプションまとめ | バシャログ。

    こんにちは nakamura です。そういえば 4/1 から 神奈川県公共的施設における受動喫煙防止条例 が施行されましたね。今のところよく行くお店でそれらしい光景は見掛けませんが、先日行った居酒屋はものの見事に禁煙になっていて心なしか客足もまばらな感じでした。神奈川県の飲はこれから厳しそうですな。 さてさて思わず関西弁になってしまうほど便利な find コマンドを今日はご紹介します。比較的有名なコマンドですが、オプションが相当な数あり正直全てを把握するのは無理かもしれません。ただ、よく使うものだけでも頭に入れておくと何かと便利な優れものなのです。 基的なオプション まずは基的な使い方。 -type ファイルタイプの指定に使用するオプションです。スペシャルファイルや名前付きパイプ等様々な引数がありますが、よく使うのはディレクトリを示す d と通常ファイルを示す f でしょうか。 -n

    めっちゃ便利やねん find コマンドのオプションまとめ | バシャログ。
    richard_raw
    richard_raw 2010/04/10
    BSD版はdaystartがなくてちょっと不便だったような。
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    richard_raw
    richard_raw 2010/04/10
    おお、+は使った事ないです。
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    richard_raw
    richard_raw 2009/05/12
    "iname" は知らなかった……orz
  • 1