我需要在以nlb开头的文件夹中获取最新的目录名称.
#!/bin/sh
cd /home/ashot/checkout
dirname=`ls -t nlb* | head -1`
echo $dirname
Run Code Online (Sandbox Code Playgroud)
当文件夹包含许多名称以nlb开头的文件夹时,此脚本可以正常工作,但是当只有一个名称以nlb开头的文件夹时,此脚本会在该文件夹中打印最新的文件名.如何更改它以获取最新的目录名称?
问题:除了最新的3之外,如何删除目录中的所有文件?
查找最新的3个文件很简单:
ls -t | head -3
Run Code Online (Sandbox Code Playgroud)
但我需要找到除最新的3个文件以外的所有文件.我该怎么做,如何在同一行中删除这些文件而不为其做一个不必要的for循环?
我正在使用Debian Wheezy和bash脚本.
找到了几个像这样的帖子来告诉如何找到文件夹里面的最新文件.
我的问题是前进一步,如何在同一个文件夹中找到第二个最新文件?目的是我正在寻找一种方法来diff使用以前的日志记录最新的日志,以便了解已更改的内容.日志是每天生成的.
我正在尝试编写一个脚本,该脚本将在执行脚本的目录中显示最旧文件的名称.
这是我到目前为止:
#!/bin/bash
for arg in $*
do
oldest=$1
if [[ $arg -ot $oldest ]]
then
oldest=$arg
fi
done
echo "Oldest file: $oldest"
Run Code Online (Sandbox Code Playgroud)
我不知道如何增加到下一个文件来检查它是否更旧
例如:
oldest=$2
oldest=$3
etc..
Run Code Online (Sandbox Code Playgroud)
尝试在bash shell中运行此脚本,给出以下args:
myScript `ls -a`
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
Oldest File: .
Run Code Online (Sandbox Code Playgroud)