2016-11-22 44 views
0

bash下面選擇目錄中最早的文件夾。如果目錄/home/cmccabe/Desktop/NGS/test中有3文件夾,並且沒有對它們做任何處理(即沒有文件被刪除,重命名),那麼bash正確標識f1爲最早的文件。但是,如果對文件夾做了某些操作,則bashf2標識爲最早的文件夾。我不知道爲什麼或如何防止這種情況發生。謝謝 :)。在目錄bash選擇目錄中最舊的文件夾並寫入日誌

文件夾

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" 

回答

1

你使用find的想法是對的,但像這樣

$ IFS= read -r -d $'\0' line < <(find . -maxdepth 1 -type d -printf '%[email protected] %p\0' \ 
    2>/dev/null | sort -z -n) 

$ printf "The oldest directory: %s\n" "${line#* }" 

到一個類似一個小調整回答here

+1

非常感謝:)。 – Chris

+0

@Chris:很高興幫助! – Inian