我需要从下面的脚本中排除单个文件类型。有人可以告诉我添加和排除具有.partial扩展名的文件的内容吗?
#!/bin/bash
cd /data/user1/upload
thetime=`date +%Y-%m-%d_%H:%M:%S` #
for i in *.*
do
extn=${i##*.} # save the extension of the file
mv "$i" "${i%.*}"$(date "+_%Y-%m-%d_%H:%M:%S.${extn}")
done
mv *.* /test/user1
答案 0 :(得分:3)
如果您先启用shopt -s extglob
,则可以使用!(*.partial)
获取所有非.partial文件。
答案 1 :(得分:1)
您可以使用正则表达式查找和搜索文件,而不是查找当前路径中的所有文件:
find . ! -name "*.partial"
这将为您提供所有与" * .part"匹配的文件。正则表达式。
答案 2 :(得分:1)
你可以使用一个检查文件名扩展名的guard子句在循环中进行过滤,例如:
for i in *.*
do
[[ "$i" =~ \.partial$ ]] && continue
...
done
当i
的值以.partial
结尾时,它会转到下一个元素。
在您的特定情况下,由于您已经提取了扩展程序值,因此可以直接对其进行比较[[ "$extn" == "partial" ]]