Chmoding一系列文件bash脚本

Chmoding一系列文件bash脚本,bash,file,shell,chmod,Bash,File,Shell,Chmod,我已经面对这个问题并寻找可能的解决方案: 编写一个bash脚本,在文件/tmp/test28,/tmp/test29上运行命令chmod 644。。。最多/tmp/test48,除了/tmp/test32 我在哪里可以找到相关的练习?如果可能,请查找资源。您可以使用seq命令。使用上面的示例,此代码将完成除/tmp/test32之外的所有操作 for X in `seq 28 48` do if [ ${X} -ne 32 ] then touch /tmp/t

我已经面对这个问题并寻找可能的解决方案:

编写一个bash脚本,在文件
/tmp/test28
/tmp/test29
上运行命令
chmod 644
。。。最多
/tmp/test48
,除了
/tmp/test32


我在哪里可以找到相关的练习?如果可能,请查找资源。

您可以使用seq命令。使用上面的示例,此代码将完成除/tmp/test32之外的所有操作

 for X in `seq 28 48`
 do
    if [ ${X} -ne 32 ]
    then
       touch /tmp/test${X}
    fi
done 

当然,您需要根据需要将touch命令更改为chmod命令。我只是没有所有这些文件,所以使用touch来快速创建它们。你在寻找什么样的资源

由于唯一的变化是数字,您可以这样做:

#!/bin/bash
for((i=28;i<=48;i++));do
   ((i!=32)) && chmod 644 /tmp/test"$i"
done
#/bin/bash

对于((i=28;i我将使用这个bash循环:

{28..48}中的i的
do
如果[${i}-ne 32]];则
chmod 644/tmp/test${i}
fi
完成
如果这是真实世界,我会使用类似于以下内容的find命令:
find-name'test*!-name'test32'-print0 | xargs-r0 chmod 644

find命令将查找所有test*文件,忽略test32,并将它们打印到以null分隔的stdout。xargs-r0表示读取以null结尾的文件列表,而-r表示仅在至少有一个文件时运行