从目录打开最新文本文件的脚本

Pri*_*nka 2 unix linux bash shell posix

我需要一个Shell脚本来打开给定目录中的最新文本文件。然后将其复制到另一个目录。我该如何实现?

我需要一种逻辑,该逻辑将从目录中搜索并提供最新文件(文本文件的名称可以是任何数字(不固定),因此我需要找出最新的文本文件)

Nis*_*tha 5

不是专家,bash但您可以尝试以下逻辑:

ls -t -t首先,使用按时间排序head -1获取第一个文件来获取最新文件

F=`ls -t * | head -1`
Run Code Online (Sandbox Code Playgroud)

然后使用编辑器打开文件:

xdg-open $F
gedit $F
...
Run Code Online (Sandbox Code Playgroud)

根据@AJefferiss的建议,您可以直接执行以下操作:

xdg-open $(ls -t * | head -1)
gedit $(ls -t * | head -1)
Run Code Online (Sandbox Code Playgroud)

  • 虽然这是您想要做的,`F = ls -t * | head -1` 将产生如下错误:`bash: F: command not find`。您需要使用“F=$(ls -t * | head -1)”将值分配给“F”,或者更好的是使用“xdg-open $(ls -t *”将其直接传递给“xdg-open” | 头-1)` (2认同)

Jun*_*ned 5

在这里你可以做这样的事情

#!/bin/sh

SOURCE_DIR=/home/juned/Downloads
DEST_DIR=/tmp/

LAST_MODIFIED_FILE=`ls -t ${SOURCE_DIR}| head -1`
echo $LAST_MODIFIED_FILE

#Open file
vim $SOURCE_DIR/$LAST_MODIFIED_FILE

#Copy file
cp $SOURCE_DIR/$LAST_MODIFIED_FILE $DEST_DIR
echo "File copied successfully"
Run Code Online (Sandbox Code Playgroud)

您可以指定要在其中打开该文件的任何应用程序名称,例如gedit,kate等。在这里,我已经使用过vim

xdg-open-在用户首选的应用程序中打开文件或URL