我在目录中有一些文件夹和文件。我需要按创建时间只订购文件夹。
如何使用shellscript按创建时间命令所有文件夹? 感谢
答案 0 :(得分:3)
您不需要shell脚本。如果您添加ls
选项,则-ltc
会按创建时间对您的文件进行排序。
来自man ls
:
-c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort by ctime
如果您只对目录而不是常规文件感兴趣,可以通过管道切换到grep
ls -ltc | grep ^d
注意:^d
表示仅显示以字母d
开头的行,在ls -l
输出的情况下表示目录。
从your answer开始,您似乎只对最新文件的文件名感兴趣。试试这个:
ls -ltc | awk '/^d/{print $NF; exit}'
注意:
/^d/
:过滤以'd'开头的行print $NF
:打印最后一栏; exit
:在第一场比赛后立即退出答案 1 :(得分:0)
ls -d -t
下次,RTM。
答案 2 :(得分:0)
我宁愿不在脚本中使用ls;改为使用find:
find . -mindepth 1 -maxdepth 1 -type d -printf "%C@ %f\n" |
sort -n |
cut -d\ -f2-
选项“-mindepth 1”就在那里因为我们不想要“。”在输出中。
或者,你也可以使用stat:
for dir in */; do
stat -c "%Z $n" "$dir"
done | sort -n | cut -d\ -f2-
答案 3 :(得分:0)
感谢所有答案!
我使用以下命令解决了我的问题:
按创作时间排序:ls -clh | grep ^d | head -1 | rev | cut -d' ' -f1 | rev
按修改时间排序:ls -tlh | grep ^d | head -1 | rev | cut -d' ' -f1 | rev