在bash
下方,选择目录中最旧的文件夹。如果目录3
中有/home/cmccabe/Desktop/NGS/test
个文件夹,并且没有对它们执行任何操作(即没有删除,重命名的文件),则bash
会将f1
正确识别为最早的文件夹。但是,如果对文件夹执行了某些操作,则bash
会将f2
标识为最早的文件夹。我不知道为什么或如何防止这种情况发生。谢谢你:)。
目录中的文件夹
f1
f2
f3
击
# oldest folder used analysis and version log created
dir=/home/cmccabe/Desktop/NGS/test
{
read -r -d $'\t' time && read -r -d '' filename
} < <(find "$dir" -maxdepth 1 -mindepth 1 -printf '%T+\t%P\0' | sort -z )
printf "The oldest folder is $filename, created on $time and analysis done using v1.3 by $USER at $(date "+%D %r")\n" >> /home/cmccabe/Desktop/NGS/test/log
echo "$filename"
答案 0 :(得分:2)
编辑文件夹或文件夹中的文件时,会更新文件夹的修改日期。不保存文件夹的创建日期。有关详细信息,请参阅此问题How to get file creation date/time in Bash/Debian?
答案 1 :(得分:1)
您使用find
的想法是正确的,但稍微调整一下
$ IFS= read -r -d $'\0' line < <(find . -maxdepth 1 -type d -printf '%T@ %p\0' \
2>/dev/null | sort -z -n)
$ printf "The oldest directory: %s\n" "${line#* }"
与回答here的人类似。