指定したパーミッションのファイルを変更する、一気に

探すのはfind、リスト実行するxargs、変更はchmod

$ find <path> -perm /a+x | xargs chmod -x
permオプション

aは全部。uユーザー、gグループ、oその他。 または数字で指定644

/は何れか、-は全てにマッチ。

/a+x/111でユーザー、グループ、その他の何れかに実行許可があるファイルを探す。

-a+x-111でユーザー、グループ、その他の全てがxなファイルを探す。

リスト実行

対象のファイルを確認したければls -lしてみる。

$ finx <path> -perm /a+x | xargs ls -l
やってやったぜ

なぜか無用に+xになってるファイルを-xした。

$ find . -perm /a+x -name *.h   \
     -or -perm /a+x -name *.c   \
     -or -perm /a+x -name *.cpp
     | xargs chmod -x

findの複数検索条件をもっとちょっとスマートに書けないの?


-exec {} ;よりxargsが推奨みたい qiita.com

こっちの方がスマート? qiita.com


www.atmarkit.co.jp

discards qualifiers [-fpermissive]

error: discards qualifiers [-fpermissive]

constなインスタンスからconstじゃないメソッドを呼び出してる。 つまり、内容を書き換えちゃダメなインスタンスから、書き換えちゃうかもしれないメソッドを呼び出してる。

#include <string>
class CString : public std::string
{
public:
    //readability
    //  hint: empty() const noexcept
    bool isEmpty() { return empty(); }
}

...

const CString a;
a.isEmpty(); // discards qualifiers
// constなのに!constメソッドを呼び出してる!!

// メソッドをconstにして解決する
// またはインスタンスをconstにしない
bool isEmpty() const { return empty(); }

GoogleTestで指定したテストのみ実行

コマンドラインの引数

--gtest_filter=TestCaseName.TestName

または環境変数、 *は任意の文字列にマッチ

$ export GTEST_FILTER="TestCaseName.*"

追記:複数の条件を指定する場合:で区切る

--gtest_filter="Foo.*:Bar.*"

opencv.jp

paper.hatenadiary.jp