0

I know how to open a LibreOffice writer file from the command line. I need to open the most recently modified file in the directory specified in path. It is an .odt file. Thanks

Rogo
  • 113
  • 4

2 Answers2

2

If you use zsh in your terminal, you can use its glob qualifiers to select the youngest .odt file (by modification time):

soffice path/to/dir/*.odt(om[1])

To use the zsh features from another shell, you could do

zsh -c 'soffice path/to/dir/*.odt(om[1])'
steeldriver
  • 142,475
1

As long as the file name does not contain returns or other very strange characters, you can use ls -ct to sort files most recently modified on top. You want to see only Libreoffice documents. You can use grep to filter these. The first, which you can obtain with head -n 1, will be the one you will want to open. You will open a file with the associated application using xdg-open. If the shell variable mypath contains the path to where your files reside, then following command will open the most recently modified .odt document.

xdg-open "$mypath"/"$((cd "$mypath"; ls -ct) | grep -i '.odt$' | head -n 1)"
vanadium
  • 97,564