Domanda

Voglio cercare la directory più vecchia (all'interno di una directory) ed eliminarla.Sto usando quanto segue:

rm -R $(ls -1t | tail -1)

ls -1t | tail -1 in effetti mi dà la directory più vecchia, il problema è che non cancella la directory e elenca anche i file.

Come potrei risolverlo?

È stato utile?

Soluzione

Questo non è abbastanza, ma funziona:

rm -R $(ls -lt | grep '^d' | tail -1  | tr " " "\n" | tail -1)

Altri suggerimenti

rm -R "$(find . -maxdepth 1 -type d -printf '%T@\t%p\n' | sort -r | tail -n 1 | sed 's/[0-9]*\.[0-9]*\t//')"

Questo funziona anche con la directory il cui nome contiene spazi, tabulazioni o inizia con un "-".

rm -R $(ls -tl | grep '^d' | tail -1 | cut -d' ' -f8)


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
Dovresti rimuovere l'eco prima del rm se produce i risultati corretti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top