最も古いディレクトリ (ディレクトリ内) を探して削除したい。私は以下を使用しています:
rm -R $(ls -1t | tail -1)
ls -1t | tail -1
実際、最も古いディレクトリが表示されますが、問題は、ディレクトリが削除されておらず、ファイルもリストされていることです。
どうすれば修正できますか?
最も古いディレクトリ (ディレクトリ内) を探して削除したい。私は以下を使用しています:
rm -R $(ls -1t | tail -1)
ls -1t | tail -1
実際、最も古いディレクトリが表示されますが、問題は、ディレクトリが削除されておらず、ファイルもリストされていることです。
どうすれば修正できますか?
rm -R "$(find . -maxdepth 1 -type d -printf '%T@\t%p\n' | sort -r | tail -n 1 | sed 's/[0-9]*\.[0-9]*\t//')"
これは、名前にスペース、タブが含まれている、または「-」で始まるディレクトリでも機能します。
これはきれいではありませんが、機能します:
rm -R $(ls -lt | grep '^d' | tail -1 | tr " " "\n" | tail -1)
find directory_name -type d -printf "%TY%Tm%Td%TH%TM%TS %p\n" | sort -nr | tail -1 | cut -d" " -f2 | xargs -n1 echo rm -Rf
正しい結果が得られる場合は、rmの前のエコーを削除する必要があります
rm -R $(ls -tl | grep '^d' | tail -1 | cut -d' ' -f8)