除外を含むパスから最も古いフォルダを削除する

除外を含むパスから最も古いフォルダを削除する

私は次のスレッドを参照しました。特定のディレクトリから最も古いディレクトリを削除する方法は? そして受け入れられた解決策は完璧です。ただし、最も古いフォルダの1つを除外する必要があります。提供されたソリューションでこの要件をどのように満たすことができますか?

ベストアンサー1

調整できます独自のソリューション除外されていないファイルが見つかるまでファイルを読み取ります。

while IFS= read -r -d '' line
do
    file="${line#* }"
    if [ "$file" = './my-excluded-directory' ]
    then
        continue
    fi
    [do stuff with $file]
    break
done < <(find . -maxdepth 1 -type d -printf '%T@ %p\0' | sort -z -n)

-d ''文字列にNUL文字を含めることはできないため、元の文字と同じです。)

readしかし、長いリストは読みが遅く、@モスビーはい、かなり不快な構文を使用してフィルタリングできますfind

IFS= read -r -d '' < <(find . -maxdepth 1 -type d \( -name 'my-excluded-directory' -prune -false \) -o -printf '%T@ %p\0' | sort -z -n)
file="${REPLY#* }"
# do something with $file here

おすすめ記事