Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ~/test_dir🍺$ls -lrt
- total 8
- drwxr-xr-x 5 kk Users 160B Apr 17 23:53 app1/
- drwxr-xr-x 5 kk Users 160B Apr 17 23:53 app2/
- drwxr-xr-x 5 kk Users 160B Apr 17 23:53 app3/
- drwxr-xr-x 5 kk Users 160B Apr 17 23:53 app4/
- drwxr-xr-x 5 kk Users 160B Apr 17 23:53 app5/
- ~/test_dir🍺$cd app1
- ~/test_dir/app1🍺$ls -rlt
- total 0
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:16 release1/
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:16 release2/
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:16 release3/
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:16 release4/
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:17 release5/
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:17 relase23/
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:17 release8.9/
- lrwxr-xr-x 1 kk 10677 8B Apr 19 14:18 Current@ -> release4
- ~/test_dir🍺ls -t1 | tail -n +3 | grep -v Current
- relase23/
- release5/
- release4/
- release3/
- release2/
- release1/
- ~/test_dir🍺ls -t1 | tail -n +3 | grep -v Current
- relase23/
- release5/
- release4/
- release3/
- release2/
- release1/
- ~/test_dir/app1🍺$ls -t1 | tail -n +3 | grep -v Current | xargs rm -r
- ~/test_dir/app1🍺$ls -rlt
- total 0
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:17 release8.9/
- lrwxr-xr-x 1 kk 10677 8B Apr 19 14:18 Current@ -> release4
- #!/bin/bash
- array=("app1" "app2" "app3" "app4" "app5")
- for ((i=0;i<${#array[@]};i++))
- do
- app=${array[$i]}
- echo "the app dir name is: $app"
- cd ~/test_dir/$app
- count=$(ls -t1 | tail -n +4 | grep -v Current | wc -l)
- echo "number of directories deleted are:"
- if [ $count == 0 ]
- then
- echo "Nothing to delete"
- echo " "
- else
- ls -t1 | tail -n +4 | grep -v Current| xargs rm -r
- fi
- done
- exit
- ~/test_dir/app1🍺$ls -t1 | tail -n +3 | grep -v Current | xargs rm -r
- ~/test_dir/app1🍺$ls -rlt
- total 0
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:16 release4/
- drwxr-xr-x 2 kk 10677 64B Apr 19 14:17 release8.9/
- lrwxr-xr-x 1 kk 10677 8B Apr 19 14:18 Current@ -> release4
- kept=0
- stat -c "%Y %n %F" release* | sort -rn |
- while read timestamp file type
- do [[ directory == "$type" ]] || continue
- if (( kept++ < 2 ))
- then echo "Keeping $file ( $( date --date=@$timestamp ) )"
- else echo "Removing $file ( $( date --date=@$timestamp ) )"
- rm -fr $file
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement