在ls -ltr linux bash方面需要帮助

时间:2013-03-13 19:01:28

标签: bash shell

我想列出特定文件夹中的最后3个日志,并将输出重定向到另一个tmp.out文件。

ls -ltr /home/oracle/$dbserver/*.log  |  awk '{print $9}' | tail -3   | tee tmp.out

我希望在tmp文件中看到的是:

a.out
b.out
c.out

我得到的是:

/home/oracle/DB1/a.out
/home/oracle/DB1/b.out
/home/oracle/DB1/c.out

我绝对需要在尾巴和T恤之间使用一些东西。有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:2)

ls -ltr /home/oracle.$dbserver/*.log | tail -3 | awk '{print $NF}' | awk -F/ '{print $NF}' | tee tmp.out

答案 1 :(得分:1)

Jut cd到该目录然后

 cd /home/oracle/$dbserver/ && ls -ltr *.log  |  awk '{print $9}' | tail -3   | tee  $OLDPWD/tmp.out

答案 2 :(得分:1)

basename命令将采用/foo/bar/baz.txt形式的字符串,只返回baz.txt。通过xargs调用它,确保使用命令行标志-n 1,这样它一次只能向basename发送一个文件名。

ls -ltr /home/oracle/$dbserver/*.log | awk '{print $9}' | xargs -n 1 basename | tail -3 | tee tmp.out