如何通过SSH一次性更改文件和目录权限?

塞宾·尼什基姆

我试图findSSH结合使用,-execchmod通过SSH递归更改文件夹中每个文件和目录的权限。

我想在一行中执行以下两个命令:

find /share/Multimedia/ -type f -exec chmod 644 {} \;
find /share/Multimedia/ -type d -exec chmod 755 {} \;

我能够找到一个解决方案,然后再将其他人张贴在某个地方,并且由于某种原因,我的bash命令历史记录已清除,并且没有写下我在其他地方用作参考的语法。我不经常这样做,因此我对标准Unix命令不太了解。

我正在使用一些类似的东西:

# probably won't execute
find /share/Multimedia/ ( if -type f -exec chmod 644 {} \; else if -type d -exec chmod 755 {} \; )

我只想偶尔在我的NAS上运行此程序,然后一口气标准化权限,而在我的NAS处理它的同时,可能无人照管其他事情。

戈登·戴维森

您可以利用find的表达式系统的and-or结构来执行此操作:

find /share/Multimedia/ -type f -exec chmod 644 {} \; -o -type d -exec chmod 755 {} \;

本质上,这具有以下逻辑:

IF:
    the item is a plain file
    AND the chmod 644 command succeeds on it
OR
    the item is a directory
    AND the chmod 755 command succeeds on it
THEN
    ... well, do nothing; normally it'd print the item's path, but since
    there's a -exec in the expression, that gets skipped

但是实际上有一种更简单的方法:

chmod -R u=rwX,go=rX /share/Multimedia/

这利用了chmod“ X”权限,这意味着“执行,但仅在有意义的情况下”。通常,这意味着它将设置在目录上执行,而不在普通文件上执行。潜在的主要问题是,如果看到对纯文件的执行权限,则认为它是有意的并保留了它,因此在有人检查并为所有内容分配执行权限后,这种情况就不会清除。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何一次性获得对配置文件所做的所有更改(自系统安装以来)?

来自分类Dev

如何在SQL Server中一次性授予对多个架构的访问权限

来自分类Dev

如何一次性推送一系列目录?

来自分类Dev

使用Django和Twilio通过SMS进行一次性用户身份验证

来自分类Dev

通过邮件发送一次性密码

来自分类Dev

如何一次性通过DF中的Pandas行进行多列转换

来自分类Dev

如何在单个用户上运行一次性数据库更改

来自分类Dev

ASP.NET“一次性缓存”文件

来自分类Dev

Outlook选择一次性配置文件

来自分类Dev

源文件并一次性添加“ export”前缀

来自分类Dev

一次性删除或复制文件

来自分类Dev

XSLT 一次性输出多个 XML 文件

来自分类Dev

Stripe - 一次性卡和延迟收费

来自分类Dev

如何一次性从多个HTML文件中删除文本?

来自分类Dev

如何使用rm一次性删除具有相同扩展名的文件?

来自分类Dev

如何一次性获得数组的索引和最大值?

来自分类Dev

如何一次性执行列表插入和弹出?

来自分类Dev

如何一次性搜索和替换多个单词

来自分类Dev

如何一次性显示项目列表框和索引

来自分类Dev

如何一次性添加事件到功能?

来自分类Dev

如何一次性推入laravel叶片

来自分类Dev

如何在骆驼有一次性路线?

来自分类Dev

如何一次性删除损坏的符号链接?

来自分类Dev

如何消除一次性增值

来自分类Dev

一次性随机

来自分类Dev

了解一次性物品

来自分类Dev

XmlWriter-一次性

来自分类Dev

一次性密码

来自分类Dev

HTML一次性页面