我有一個包含日期標記的子目錄的目錄。每個子目錄包含按小時用於迭代文件和目錄的shell腳本
parent_dir\
--2017-07-12\
-2017-07-12-00
-2017-07-12-01
-2017-07-12-02
-2017-07-12-03
...
-2017-07-12-23
--2017-07-13\
-2017-07-13-00
-2017-07-13-01
-2017-07-13-02
-2017-07-13-03
...
-2017-07-13-23
--2017-07-14
...
我要尋找從最近的文件,以最少的啓動特定字符串標記文件。
我嘗試了以下片段遍歷目錄:
MAIN_DIR="/<main_dir_location>"
for directory in `$MAIN_DIR/* | sort -r`; do
echo "$directory"
done
或
MAIN_DIR="/<main_dir_location>"
for directory in $("$MAIN_DIR"/* | sort -r); do
echo "$directory"
done
我得到
/<main_dir_location>/2017-07-12: is a directory
對我來說,它看起來像貝殼試圖錯誤執行從每個循環獲得的目錄值。
- 這種理解是否正確?
- 我該如何解決這個問題?
- 有沒有更好的方法來完成我在這裏要做的事情?
我相信你缺少'ls'命令,試試這個:'$(ls「$ MAIN_DIR」/ * |排序-r)'。 – Azize
你見過['find'](https://linux.die.net/man/1/find)命令嗎?這幾乎可以肯定你想要的。 – dimo414
也許一個好的解決方案是'grep'遞歸併按文件名排序。 – Azize