Ich versuche gerade von einer mit ls nach modification time sortierte Dateiliste mit sed um die ersten n Einträge zu kürzen und die restlichen Dateinamen dann zum Aufruf von rm zu verwenden.
Also mein Ansatz ist foglender, wobei ich allerdings denke, dass hier in meinem String irgendwie ein nicht-sichtbares Zeichen (escape-sequence?) entsteht, welche rm verwirrt.
Code: Alles auswählen
IFS=`
`
# ls: Dateien nach Datum sortiert
# sed: die erste (also jüngsten) vier Einträge löschen
# tr: Zeilenumbrüche durch Leerzeichen ersetzen
my_liste=$(ls ${1} -1t | sed '1,4d' | tr '\n' ' ')
# letztes Zeichen (welches???) entfernen
#my_liste_length=${#my_liste}
#my_liste=${my_liste:0:my_liste_length-1}
rm -v $my_liste
echo ${my_liste}
Code: Alles auswählen
$ ./kill.sh "*z01*"
rm: Entfernen von „z015.jpg z019.jpg z017.jpg z014.jpg z011.jpg z016.jpg
“ nicht möglich: No such file or directory
z015.jpg z019.jpg z017.jpg z014.jpg z011.jpg z016.jpg
Code: Alles auswählen
rm: Entfernen von „z015.jpg z019.jpg z017.jpg z014.jpg z011.jpg
z016.jpg“ nicht möglich: No such file or directory
^