我有一个包含多个子目录的文件夹(name250)。 我希望我的脚本在所有子目录中找到某些文件(tE1_sys_250.txt到tE99_sys_250.txt)并将它们复制到另一个文件夹(name250_sys)。
这是我的剧本,但是当我运行它时没有任何反应。
#!/bin/bash
cd ~/name250/
mkdir ../name250_sys
for a in {10..99}
do
`find . -name tE$a'_sys'_250.txt -exec cp {} ./name250_sys/ \;`
done
提前致谢。
答案 0 :(得分:1)
这看起来不对:
cd /name250/
这会尝试将目录更改为根文件夹中包含的“name250”目录。我想你想要:
cd ../name250_sys
答案 1 :(得分:0)
我找到了解决方案。我的问题是脚本的最后一部分,我不得不添加一行" cd .."在找到命令之前。然后,它有效。
#!/bin/bash
cd ~/name250/
mkdir ../name250_sys
cd ..
for a in {10..99}
do
`find . -name tE$a'_sys'_250.txt -exec cp {} ./name250_sys/ \;`
done
答案 2 :(得分:0)
尝试以下一行会有所帮助:
如果您正在寻找1-99
find . -regextype posix-awk -regex '.*tE[0-9]{1,2}_sys_250\.txt' -exec cp {} ./name250_sys/ \;
如果您正在寻找10-99
find . -regextype posix-awk -regex '.*tE[0-9]{2}_sys_250\.txt' -exec cp {} ./name250_sys/ \;
假设您只想复制此类文件