/ / Skrypty Bash i używanie TAR do archiwizacji folderów, jak pobrać 5 ostatnich folderów w folderze? - bash, shell, ksh, tar, aix

Skrypty Bash i używanie TAR do archiwizowania folderów, jak zdobyć 5 ostatnich folderów w folderze? - bash, shell, ksh, tar, aix

Mam skrypt, który archiwizuje kilka katalogów za pomocą programu tar, poniżej znajduje się fragment kodu.

run_tar()
{
clear
echo "***"
echo "This can take up to an hour, please wait..."
echo "***"
tar -X $BASE/synclive_exclude.list -cf - /usr2/docs /usr2/devel_backup /usr2/devel_config /usr2/devel_logs /usr2/devel_reports /usr2/devel_snapshots /usr2/doc-files | gzip > $DUMP_DIR/stage/usr2.tar.gz &
wait
}

Problem, na który napotykam, to ... dla jednego określonego katalogu powyżej. / Usr2 / devel_snapshots Katalog jest duży i składa się z codziennych kopii zapasowych.

Foldery w tym folderze to ...

drwxrwxrwx    3 root     system         8192 Feb 01 11:15 201402011115
drwxrwxrwx    3 root     system         8192 Feb 02 11:15 201402021115
drwxrwxrwx    3 root     system         8192 Feb 03 11:15 201402031115
drwxrwxrwx    3 root     system         8192 Feb 04 11:15 201402041115
drwxrwxrwx    3 root     system         8192 Feb 05 11:15 201402051115
drwxrwxrwx    3 root     system         8192 Feb 06 11:15 201402061115

Czy możliwe jest tylko pobranie najnowszych 5 folderów z / usr2 / devel_snapshots w mojej komendzie tar zamiast całego folderu?

Jak chciałbym wykonać tę pracę?

System operacyjny to AIX 7.1 64bit

Dziękuję Ci.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz spróbować z czymś takim jak:

find /usr2/devel_snapshots 
-type d 
-maxdepth 1 
-mindepth 1 |
sort -r |
head -5 |
xargs tar -X $BASE/synclive_exclude.list -cf - 
/usr2/docs /usr2/devel_backup /usr2/devel_config 
/usr2/devel_logs /usr2/devel_reports /usr2/doc-files |
gzip > $DUMP_DIR/stage/usr2.tar.gz &

ls, sort i head otrzymają najnowsze 5 katalogów, a za pomocą xargs możesz podać wyniki jako parametr do polecenia tar