gpt4 book ai didi

linux - BASH:遍历不包括某些基于关键字的子目录的目录

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:50 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的备份脚本,除其他外,它将复制我的 firefox 配置文件,排除该配置文件中的任何缓存项或文件夹。

这是在我基于 debian 的 crunchbang 系统上。

这听起来很简单,但我是 bash 脚本编写的新手,到目前为止我想出的东西是如此不雅和笨拙,我很想得到一些意见。

这是我目前所拥有的:

#!/bin/bash

for f in /home/my_name/.mozilla/firefox/*.default/*
do
echo "$f level 1"

if [[ "$f" != "Cache" ]]
then
if [ -d $f ]
then
for g in $f/?
do
echo "$g level 2"
for h in $g/?
do
echo "$h level 3"
for i in $h/?
do
echo "$i level 4"
for j in $i/?
do
echo "$j level 5"
done
done
done
done
fi
fi
done

echo 在那里,你可能已经猜到了,用于错误检查。这些将被 cp 语句替换。

我看到的一个问题是这不够灵活:如果目录超过 5 个,它们将不会被包括在内。如果我扩展脚本以包含它们,我只是将问题移了一步。

另一个问题是我目前在脚本输出中看到的:

/home/my_name/.mozilla/firefox/gibberish.default/OfflineCache/?/?/? level 4

我不知道为什么会出现这条线,但我相信它不应该出现。

那么...有什么提示可以帮助我吗?

最佳答案

这个工作最好留给rsync

rsync -avh --progress --exclude='*Cache/' ~/.mozilla/firefox/ /path/to/your/backup/location/

关于linux - BASH:遍历不包括某些基于关键字的子目录的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com