如何只获取变量中的文件名,而不获取完整的路径shell脚本


mainFile=$(find /home/INVENT/custREAD -name '*.txt.gz' -type f -mmin 300)

我在shell脚本中使用上面的一行从/home/INVENT/custREAD位置获取今天日期的文件,并将其放入变量mainFile中

但当我回应这个变量时,我看到:

/home/INVENT/custREAD/filename.txt

但我希望只有文件名在变量中

使用findprintf指令。

mainFile=$(find "$dir" -name '*.txt.gz' -type f -mmin 300 -printf '%fn')

或者,您可以使用shell参数展开来剥离路径:

mainFile=$(find "$dir" -name '*.txt.gz' -type f -mmin 300)
mainFile=${mainFile##*/}    # remove the longest prefix ending with slash

您可以将basename添加到您的find调用

mainFile=$(find /home/INVENT/custREAD -name '*.txt.gz' -type f -mmin 300 -exec basename {} ;)

尽管我会警告您,如果您有多个匹配项,您的变量将包含多个路径,这将导致中断(这与我对find调用的更改无关(。

相关内容

  • 没有找到相关文章