ディレクトリ内の最新のファイルを見つけるには?私のスクリプトは、ディレクトリ内の最新のファイルに追加の出力を提供します。
#!/bin/bash
echo "Please type in the directory you want all the files to be listed"
read directory
for entry in "$directory"/*
do
(stat -c %y "$directory"/* | tail -n 1)
done
for D in "$entry"
do
(ls -ltr "$D" | tail -n 1)
done
現在の出力:
2018-02-19 12:24:19.842748830 -0500
2018-02-19 12:24:19.842748830 -0500
2018-02-19 12:24:19.842748830 -0500
-rw-r--r-- 1 root root 0 Feb 19 12:19 test3.xml
私のディレクトリ構造は次のとおりです。
$ pwd
/nfs/test_library/myfolder/test
$ ls -ltr test
1.0 2.0 3.0
$ ls -ltr 1.0
test1.xml
$ ls -ltr 2.0
test2.xml
$ ls -ltr 3.0
test3.xml(which is the most recent file)
したがって、印刷用にのみスクリプトを作成する必要があります。test3.xml
ベストアンサー1
私はあなたが望むことを達成することができました。
牛に似た一種の栄養stat
read -rp "Please type in the directory you want all the files to be listed" directory
if [ -d "$directory" ]; then
find "$directory" -type f -exec stat --printf='%Y\t%n\n' {} \; | sort -n -k1,1 | tail -1
else
echo "Error, please only specify a directory"
fi
BSDstat
read -rp "Please type in the directory you want all the files to be listed" directory
if [ -d "$directory" ]; then
find "$directory" -type f -exec stat -F -t '%s' {} \; | sort -n -k6,6 | tail -1
else
echo "Error, please only specify a directory"
fi
指定されたディレクトリ内のすべてのファイルを再帰的に検索します。次に、UNIX EPOCHタイムスタンプ形式の修正タイムスタンプを使用してそれを計算します。次に、このタイムスタンプフィールドに基づいてソートします。最後に、最後の結果(最も最近更新されたファイル)のみが印刷されます。