使带有“chattr”的 Bash 脚本在 OS X 下运行

使带有“chattr”的 Bash 脚本在 OS X 下运行

有人能帮助我把这个脚本适配到 Mac OS X 吗?

USR=$(logname)
f=`find /home/$USR/documents -name "*.doc" -o -name "*.xsl" -o -name "*.pdf"`
for file in $f
do
   chattr +i $f
done

我的目标是找到具有此扩展名的文件,并且之后不能删除,这可以通过 linux 中的 chattr +i 实现

答案1

如果您能解释一下您希望脚本执行的操作,我很乐意对您的脚本进行评论。据我所知,该chattr命令特定于 Linux。摘自其手册页:

NAME
chattr - 更改文件属性在 Linux 文件系统上

如果您想要的只是使 find 命令返回的文件为只读,请尝试以下操作:

find $HOME/documents -name "*.doc" -o -name "*.xsl" -o -name "*.pdf" -exec chmod 444 {} \;

更新:如果 Daniel Beck 的建议正是您所需要的,那么您可以将其合并到 find 命令中:

find $HOME/documents -name "*.doc" -o -name "*.xsl" -o -name "*.pdf" -exec chflags uchg {} \;

我还是不明白为什么需要脚本。脚本USR=$(logname)是无用的,因为您想要的只是当前用户的主目录,而该目录已经在 $HOME 中了。

相关内容