Bashループからファイルを除外する

Bashループからファイルを除外する

次のスクリプトでは、ループからディレクトリをどのように除外しますか?すべてのファイルが同じレベルに存在するこのディレクトリへのシンボリックリンクであるため、これを実行したいので、追加したくありません。


cd /var/www
for dir in */
do
        base=$(basename "$dir")
        tar -czfh "${base}.tar.gz" "$dir"
done

ベストアンサー1

次の文を追加できますcontinue

cd /var/www
for dir in */
do
        if [ "$dir" == "foo" ] ; then
              continue;
        fi
        base=$(basename "$dir")
        tar -czfh "${base}.tar.gz" "$dir"
done

または、次のコマンドを使用して実行できますfind

find /var/www -maxdepth 1 -type d \( -name foo \) -prune -o -print -exec bash -c "tar -czfh \`basename {}\`.tar.gz {}" \;

おすすめ記事