chmoding一系列文件bash脚本

时间:2015-07-08 20:31:28

标签: bash file shell chmod

我遇到了这个问题并寻找可能的解决方案:

编写一个bash脚本,对文件chmod 644/tmp/test28 ...最多/tmp/test29运行命令/tmp/test48/tmp/test32除外

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

3 个答案:

答案 0 :(得分:0)

您可以使用seq命令。使用上面的示例,除了/ tmp / test32

之外,此代码将执行所有操作
 for X in `seq 28 48`
 do
    if [ ${X} -ne 32 ]
    then
       touch /tmp/test${X}
    fi
done 

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

答案 1 :(得分:0)

唯一的变化是数字,你可以这样做:

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

答案 2 :(得分:0)

我会使用这个bash循环:

for i in {28..48}; do if [[ ${i} -ne 32 ]]; then chmod 644 /tmp/test${i} fi done 如果这是现实世界,我会使用类似于此的find命令: find -name 'test*' ! -name 'test32' -print0 | xargs -r0 chmod 644

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