GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Embed Notice

HTML Code

Corresponding Notice

  1. Embed this notice
    zunda (zundan@mastodon.zunda.ninja)'s status on Tuesday, 19-Dec-2023 11:56:33 JSTzundazunda
    in reply to
    • かき@GNUsocialJP

    僕の使っているコマンドラインツールの #ひかえめなアドベントカレンダー2023 12月18日分はfindとxargsです。ファイルを見つけます。

    findコマンドは第1引数に指定したディレクトリからディレクトリを辿って条件に合うファイルを標示してくれます。

    $ find . -name '*.rb'

    複数の条件を指定するとデフォルトでは論理積になります。例えばvendorディレクトリを除外する場合には論理和を明示する必要があります。

    $ find . -name vendor -prune -or -name '*.rb'

    ファイル名をコマンドライン引数にして渡す場合にはxargsにパイプします。

    $ find . -name vendor -prune -or -name '*.rb' | xargs grep require_relative

    ファイル名に空白文字が含まれる場合には、findやxargsにnil文字(\0)を区切り文字にしてもらいます。

    $ find . -name vendor -prune -or -name '*.rb' -print0 | xargs -0 grep require_relative

    find単体でもファイルの削除などをすることができますが、僕は念のためxargsにechoを渡して実行されるコマンドを目視確認してからechoを削除して実行することが多いです。

    $ find . -name vendor -prune -or -name '*.rb~' -print0 | xargs -0 echo rm

    それでも探しものが見つからないこともあるんだよね。それより僕と踊りませんか? (いいえ)

    In conversationTuesday, 19-Dec-2023 11:56:33 JST from mastodon.zunda.ninjapermalink
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.