我遇到了这个问题并寻找可能的解决方案:
编写一个bash脚本,对文件chmod 644
,/tmp/test28
...最多/tmp/test29
运行命令/tmp/test48
,/tmp/test32
除外
我在哪里可以找到相关的练习?如果可能请寻找资源。
答案 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表示只在至少有一个文件时运行。