我在创建一个if
语句来检查我的目录中的文件是否有名称中的某个字符串时遇到了问题.
例如,我在某个目录中有以下文件:
file_1_ok.txt
file_2_ok.txt
file_3_ok.txt
file_4_ok.txt
other_file_1_ok.py
other_file_2_ok.py
other_file_3_ok.py
other_file_4_ok.py
another_file_1_not_ok.sh
another_file_2_not_ok.sh
another_file_3_not_ok.sh
another_file_4_not_ok.sh
Run Code Online (Sandbox Code Playgroud)
我想将包含的所有文件复制1_ok
到另一个目录:
#!/bin/bash
directory1=/FILES/user/directory1/
directory2=/FILES/user/directory2/
string="1_ok"
cd $directory
for every file in $directory1
do
if [$string = $file]; then
cp $file $directory2
fi
done
Run Code Online (Sandbox Code Playgroud)
更新:
更简单的答案是由Faibbus做出的,但如果你想删除或只是移动没有你想要的特定字符串的文件,请参考Inian.
其他答案也是有效的.
cp directory1/*1_ok* directory2/
Run Code Online (Sandbox Code Playgroud)