web-dev-qa-db-ja.com

Ubuntuのすべてのtxtファイルから実行権限を削除する方法

buntu 16.04 64ビットデスクトップがあり、過去にwineをインストールし、後で削除しました。さて、txtファイル in nautilusを開こうとすると、多くの場合、dailouge boxが表示されますファイルは実行可能であり、Irunまたはdisplay それ。私はこの振る舞いに悩まされており、これらのファイルからexecuteパーミッションを取り消したいと思っています。誰かがこれを行う方法を教えてくれると助かります。

ありがとう

5
nlern

ホームディレクトリとそのすべてのサブディレクトリにあるすべての.txtファイルから実行ビットを削除するには、次を試してください。

find "$HOME" -type f -executable -name '*.txt' -execdir chmod a-x {} +

使い方:

  • find "$HOME"

    これにより、findが開始され、ホームディレクトリで始まり、すべてのサブディレクトリを再帰的に含むファイルが検索されます

  • -type f

    これにより、findはディレクトリではなく通常のファイルのみを検索するようになります。

    ディレクトリから実行ビットを削除すると、そのディレクトリにアクセスできなくなるため、検索を通常のファイルに制限することが重要です。

  • -executable

    これにより、findは実行可能ビットが設定されているファイルのみを検索するようになります。

  • -name '*.txt'

    これは、名前がグロブ*.txtと一致するファイルのみを検索するようにfindに指示します。

  • -execdir chmod a-x {} +

    これにより、findに、見つかったそのようなファイルに対してchmod a-xを実行するよう指示します。

    -execdirとは対照的に、-execを使用します。これは、このコマンドの実行中にディレクトリ名が変更された場合の方が信頼性が高いためです。

    +の最後にある-execdir chmod a-x {} +は、可能であれば各findコマンドラインに多くのファイルを配置することにより、chmodのインスタンスをより少なく実行するようchmodに指示します。

6
John1024
find . -name "*.txt" -exec chmod a-x {} \;

findコマンドは自明です。指定された引数に従ってファイルを検索します。使用法:find location comparison-criteria search term

find . -name "*.txt" -exec chmod a-x {} \;こちら。ルートディレクトリを意味し、-name "*.txt"は、名前に「.txt」を含むすべてのファイルを検索することを意味します。 -exec chmod a-x {} \;は、一致するすべてのファイルでchmodコマンドを実行することを意味します。

0
Mustafa Yılmaz