在以下脚本中,如何排除循环中的目录?我想这样做是因为所有文件都是指向同一级别存在的这个目录的符号链接,所以我不想添加它。
cd /var/www
for dir in */
do
base=$(basename "$dir")
tar -czfh "${base}.tar.gz" "$dir"
done
Cor*_*ren 18
您可以添加这样的continue
语句:
cd /var/www
for dir in */
do
if [ "$dir" == "foo" ] ; then
continue;
fi
base=$(basename "$dir")
tar -czfh "${base}.tar.gz" "$dir"
done
Run Code Online (Sandbox Code Playgroud)
或者你可以用find
命令来做到:
find /var/www -maxdepth 1 -type d \( -name foo \) -prune -o -print -exec bash -c "tar -czfh \`basename {}\`.tar.gz {}" \;
Run Code Online (Sandbox Code Playgroud)
extglob
如果尚未启用,则需要启用此功能 ( shopt -s extglob
):
for dir in !(dirname)/
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15700 次 |
最近记录: |