salut,
je plaide pour une solution un peu similaire à celle de disedorgue à base de ls
, avec find ça tourne vite au vaudou en fait, entre l'exclusion du répertoire courant, des répertoires cachés, la sortie qu'il faut formater avec des \x22 (guillemets) pour ensuite récupérer le nom correct avec ses espaces éventuels, trier le tout etc.
finalement avec un coup de ls et les options -1td la sortie est consistente, et pour restreindre aux répertoires, on applique sur */ (merci le globbing)
zip -r archive.zip "$(ls -1td */ | head -1)"
donc wrappé dans une commande ssh il faudra échapper les guillemets du style :
ssh user@machine "zip -r archive.zip \"$(ls -1td */ | head -1)\""
Edit: avec find j'ai pas trouvé mieux que ça :
zip -r archive.zip "$(find . -maxdepth 1 -type d ! -path . ! -name \".*\" -exec stat --printf='%Y\t\x22%n\x22\n' {} \+ | sort -rnk1 | awk -F'\x22' '{print $2; exit}')"
ce qui une fois enroulé dans la commande ssh deviendra probablement imbitable à cause des doubles échappements, sans compter qu'il faudra échapper le $2 également
Edit2: pour le fun une version Perl : perl -e 'print +(sort { (stat($b))[9] <=> (stat($a))[9] } (<*/>))[0]'
Partager