我有一个数组,其中包含要删除的各种文件/文件夹的列表,包括删除文件夹中的所有文件。
server_dir="/srv/data/"
removeLocalFiles=("logs/*.log.gz" "plugins/file.txt" "other.txt")
for serverFile in "${removeLocalFiles[@]}"; do
rm "$server_dir/$serverFile"
done
该数组将是文件,文件夹,以及如您所见的具有特定扩展名的文件。
这不起作用,带有*的文件不会删除。
我可以使用什么来删除特定目录中的所有文件?该列表将完全转到该文件或文件夹,因此除了该特定文件外,它不应删除其他任何内容。/
答案 0 :(得分:0)
您可以将其添加到行中以测试目录是否不为空。如果字符串不为空,则rm可以正常工作。[ ! -z "$(ls -A $server_dir/$serverFile")" ] && rm
"$server_dir/$serverFile"