Linux 查找 -exec 权限被拒绝

Linux find -exec permission denied

我写了一个 shell 脚本遍历文件并对它们的内容进行排序并将新顺序保存回文件。

#!/bin/sh

for i in "$@"; do
    sort $i -k2 -o $i
done

要排序的文件使用 find 命令选择,如下所示:

find . -regex '<myregex>' -exec ./mysort.sh {} +

我编写了脚本并以特定用户身份在一台机器上进行了试用,然后使用 root 权限将其复制到另一台机器上。所以现在文件有 chown root:root 以及我要搜索的所有文件。

所以现在要排序的文件位于与 mysort.sh 相同的文件夹中,当我尝试使用 -exec 执行查找时,我得到

find: './mysort.sh': Permission denied

我尝试将脚本移动到子文件夹并使用 -exec ./folder/mysort.sh 执行命令,或者将其移动到更高级别的文件夹并使用 -exec ../mysort.sh 执行。我总是会收到不同类型的权限被拒绝错误。

检查文件系统是否使用 noexec 标志挂载。

但您仍然可以通过 bash:

运行 您的脚本
bash /path/to/mysort.sh