Ls
想要按更新日期對文件進行排序,包括子目錄
我只想按更新日期對文件進行排序,包括子目錄。
我發現了
ls -lrtR | grep ^-
。但它似乎沒有按更新日期排序。我需要將此列表保存到文件中。可能嗎?
Apr 01 2010 InsideDoosanServiceImpl.class // in A directory Apr 08 2010 MainController.class // in B directory Apr 07 2010 RecommendController.class // in B directory Apr 01 2010 MainDao.class // in B directory
我的意思是整個列表不是按日期排序的,而是首先按文件夾排序,然後按日期排序。
我想要一個按日期排序的列表,包括所有子目錄。
我不確定你到底是什麼意思
update dates
,但你正在使用-r
根據 man 執行此操作的選項 --r 反轉排序順序以獲得相反的字典順序或最舊的條目首先(或最大的文件最後,如果與按大小排序相結合
如果您需要按時間排序的文件,我認為這對您來說已經足夠了。
ls -lRt
如果您不需要列出的所有其他東西,
ls
那麼您可以使用 -
ls -1Rt
要在文件中擷取結果,您可以使用重定向運算符
>
並提供文件名。所以你可以做這樣的事情 -
ls -lRt > sortedfile.list
更新:
find . -type f -exec ls -lt {} +
這將對文件進行排序,以便首先列出最新的文件。要反轉排序順序,在最後顯示最新文件,請使用以下命令:
find . -type f -exec ls -lrt {} +
使用 ls,-R 將遞歸目錄,-t 將按修改排序。但是,它遞歸地遍歷目錄並將 -t 應用於每個目錄。它不會累積所有目錄中的所有文件然後排序。(據我了解,後者是你想要的)
使用 gnu find(1),您可以指定輸出格式以包括自紀元以來的秒數和文件名,然後您可以將其通過管道傳遞給 sort(1)。
find . -type f -printf "%T@ %f\n" | sort -n > out.txt