如何从Ubuntu中的所有txt文件中删除执行权限

nle*_*ern 6 permissions command-line wine nautilus execute-command

我有一个Ubuntu 16.04 64 位桌面,我wine过去曾在其中安装过,后来又将其删除。现在,当我尝试打开txt文件nautilus,在许多情况下,我得到一个dailouge箱说该文件是可执行文件,以及是否我应该运行显示它。我对这种行为感到恼火,并希望撤销这些文件的执行权限。如果有人可以告诉我如何做到这一点,那将会很有帮助。

谢谢

Joh*_*024 6

要从.txt主目录及其所有子目录中的所有文件中删除执行位,请尝试:

find "$HOME" -type f -executable -name '*.txt' -execdir chmod a-x {} +
Run Code Online (Sandbox Code Playgroud)

这个怎么运作:

  • find "$HOME"

    这将开始find查找以您的主目录开头的文件,并递归地包括所有子目录

  • -type f

    这告诉find只查找常规文件,而不是目录。

    将搜索限制为常规文件很重要,因为如果我们从目录中删除执行位,该目录将变得不可访问。

  • -executable

    这告诉find只查找设置了可执行位的文件。

  • -name '*.txt'

    这告诉find只查找名称与 glob 匹配的文件*.txt

  • -execdir chmod a-x {} +

    这告诉在找到的任何此类文件find上执行chmod a-x

    我们使用-execdir,而不是-exec,因为如果在此命令运行时目录名称发生变化,它会更可靠。

    +在表格末尾-execdir chmod a-x {} +告诉find运行情况减少chmod通过把每一个上有许多文件chmod,如果可能的命令行。