ディレクトリ内の最も古いディレクトリを削除するにはどうすればよいですか?

ディレクトリ内の最も古いディレクトリを削除するにはどうすればよいですか?

バックアップ プログラムを作成しており、特定のディレクトリ内の最も古いディレクトリを削除するには bash コマンドを実行する必要があります。

私はこのコマンドを見つけました最も古いディレクトリを印刷する:

find -type f -printf '%T+ %p\n' | sort | head -n 1

ディレクトリとそのすべてのコンテンツを削除するには、次のコマンドを実行します。

rm -rf [oldest directory name]

最も古いフォルダーを削除するには、これら 2 つを組み合わせるにはどうすればよいでしょうか?

答え1

これはどのパスでも機能するはずです(@StéphaneChazelasに感謝します)head騙す) であり、POSIX 互換である必要があります (読みやすいようにフォーマットされています)。

printf %q "$(
    find . -type d -printf "%T+ %p\0" |
    tr '\0\n' '\n\0' |
    sort |
    head -n 1 |
    tr '\0\n' '\n\0' |
    sed -e 's/^[^ ]\+ //')"

実際にディレクトリを削除するには、printf %q次のように置き換えます。rm -rf --

関連情報