mainFile=$(find /home/INVENT/custREAD -name '*.txt.gz' -type f -mmin 300)
我在shell脚本中使用上面的一行从/home/INVENT/custREAD位置获取今天日期的文件,并将其放入变量mainFile中
但当我回应这个变量时,我看到:
/home/INVENT/custREAD/filename.txt
但我希望只有文件名在变量中
使用find
的printf
指令。
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
调用的更改无关(。