首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将最新的文件名放入比特定时间更早的变量中

将最新的文件名放入比特定时间更早的变量中
EN

Stack Overflow用户
提问于 2018-09-10 13:59:37
回答 2查看 45关注 0票数 1

我是Linux新手,需要你们的一点帮助。

我想让最新的文件名在一个特定的时间之前修改成一个变量。

我能从下面的命令中得到结果。但是我得到的文件修改时间和文件名都是。

代码语言:javascript
运行
复制
find /home/administrator/ -not -path '*/\.*' -type f -mmin +100 -printf "%TY-%Tm-%Td %TT %p\n" | sort -nr | head -n 1

下面是上面命令的输出

代码语言:javascript
运行
复制
2018-09-10 18:39:18.3099856630 /home/administrator/K.sh

期望输出-> K.sh

如何只将文件名放入变量中?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-10 14:11:05

由于您已经使用了-printf选项的find命令,所以只需将所有这些格式替换为‘%f’,就可以得到路径的最后一个元素(文件名):

代码语言:javascript
运行
复制
find /home/administrator/ -not -path '*/\.*' -type f -mmin +100 -printf "%f\n"

如果结果必须以这种方式排序,则可以在最后追加regex管道。它可以以太多的方式完成,下面是Perl的一个例子:

代码语言:javascript
运行
复制
find /home/administrator/ -not -path '*/\.*' -type f -mmin +100 -printf "%TY-%Tm-%Td %TT %p\n" | sort -nr | head -n 1 | perl -lne 'print $1 if /.+\/(.+)/'
票数 2
EN

Stack Overflow用户

发布于 2018-09-10 14:17:01

有很多选择,几个人突然想到:

  • ... | sed 's/^.*\///'
  • ... | cut -d' ' -f3 | xargs basename

(我不熟悉printf选项。这是不标准的--也许是GNU专用的?--而且Mac上也没有。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52259485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档