拒绝权限时,查找排除路径不起作用

z0lupka

find以下位置排除路径时,存在一些奇怪的行为

find ~ -not -path "~/sandboxes/*" -name 'some-file.vmdk'

给出:

/home/user/VMs/win/some-file.vmdk
find: ‘/home/user/sandboxes/debian7.amd64.buildd/root/...’: Permission denied
find: ‘/home/user/sandboxes/debian7.amd64.buildd/var/...’: Permission denied

怎么了?

不幸的-prune是,PS也不起作用:

find ~ -path "/home/user/sandboxes/*" -prune -o -name 'some-file.vmdk'

给出了更奇怪的结果:

/home/user/nemu_vm/win/some-file.vmdk
/home/user/sandboxes/debian7.amd64.buildd
/home/user/sandboxes/debian9.amd64.buildd

有用的链接

库萨兰达

你的命令

find ~ -path "/home/user/sandboxes/*" -prune -o -name 'some-file.vmdk'

印刷

/home/user/sandboxes/debian7.amd64.buildd
/home/user/sandboxes/debian9.amd64.buildd

因为不提供任何操作时的默认操作是输出找到的路径名。找到上述路径名,然后修剪这些路径。修剪搜索路径不会排除这些路径名的打印。

但是,如果添加-print到最后,如

find "$HOME" -path "$HOME/sandboxes" -prune -o -name 'some-file.vmdk' -print

那么这些路径名将不会被打印。这是因为现在您有一个显式操作(-print),因此不会触发任何默认操作。-print只适用于右手边-o

请注意,*不需要,并且该变量$HOME比易于使用~,尤其是在脚本中。


您的第一个命令,

find ~ -not -path "~/sandboxes/*" -name 'some-file.vmdk'

很有可能无法正常运行,因为~没有在引号内进行扩展。

假设您使用$HOME它,它也不会修剪搜索路径,这意味着它仍然会输入~/sandboxes,但是它永远不会从该路径下方打印任何路径名。由于它进入目录,因此当它到达无法访问的目录时,仍然会给您权限错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NTFS权限-拒绝删除不起作用

来自分类Dev

php表格不起作用:“权限被拒绝...”

来自分类Dev

RewriteCond排除不起作用的路径

来自分类Dev

sophos av路径排除不起作用

来自分类Dev

NFS共享上的git clone不起作用(权限被拒绝)

来自分类Dev

查找在符号链接路径上不起作用?

来自分类Dev

查找在符号链接路径上不起作用?

来自分类Dev

更改交换权限时权限被拒绝

来自分类Dev

登录权限不起作用

来自分类Dev

权限组不起作用

来自分类Dev

权限命令不起作用

来自分类Dev

Keycloak 权限不起作用

来自分类Dev

Azure CLI Aks安装CLI权限被拒绝并且sudo不起作用

来自分类Dev

cd到特定目录时,bash不起作用,拒绝了读写权限

来自分类Dev

Cookie的路径不起作用

来自分类Dev

linux路径不起作用

来自分类Dev

Cookie的路径不起作用

来自分类Dev

jQuery查找不起作用

来自分类Dev

命令“查找”不起作用

来自分类Dev

查找类不起作用

来自分类Dev

gulp-排除文件不起作用

来自分类Dev

Gradle依赖排除不起作用

来自分类Dev

rsync排除目录不起作用

来自分类Dev

同步系统,排除似乎不起作用

来自分类Dev

多个及物排除不起作用

来自分类Dev

Android gradle排除模块不起作用

来自分类Dev

tar 排除在 bash 中不起作用

来自分类Dev

Nginx拒绝位置不起作用

来自分类Dev

Lagom lagomServiceLocatorStart不起作用-连接被拒绝