【发布时间】:2019-05-30 02:17:14
【问题描述】:
我有一个数组,其中包含要删除的各种文件/文件夹的列表,包括删除文件夹中的所有文件。
server_dir="/srv/data/"
removeLocalFiles=("logs/*.log.gz" "plugins/file.txt" "other.txt")
for serverFile in "${removeLocalFiles[@]}"; do
rm "$server_dir/$serverFile"
done
数组可以是文件、文件夹,如您所见,是具有特定扩展名的文件。
这不行,带*的文件不会删除。
我可以使用什么来删除特定目录中的所有文件?该列表将完全指向该文件或文件夹,因此不应删除该特定文件以外的任何内容。/
【问题讨论】:
-
为什么要使用数组,为什么不使用
cd "$server_dir" && rm logs/*.log.gz plugins/file.txt other.txt? -
一次性完成,将所有要删除的文件存储在数组
server_dir="/srv/data"; removeLocalFiles=("${server_dir}"/logs/*.log.gz "${server_dir}/plugins/file.txt" "${server_dir}/other.txt")中,并删除为rm -- "${removeLocalFiles[@]}"
标签: arrays bash ubuntu terminal