我試圖創建一個簡單的腳本來列出在我的nas機器上的一個目錄中創建的16個最新文件夾,作爲顯示添加到我的集合中的最新電影的一種方式。如何在BASH中按創建日期排序目錄?
我用此刻的腳本是:
#!/bin/bash
rm -f /volume1/new-movies/*
IFS=$'\x0A'
fresh=$(ls -1ct /volume1/movies | head -16)
for folder in $fresh
do
file=$(find "/volume1/movies/$folder" -maxdepth 1 -type f)
movie=$(basename "$file")
ln -s "$file" "/volume1/new-movies/$movie"
done
ls -1 /volume1/new-movies
這是OK(電影文件夾將只包含文件夾)。我的問題是這是按文件/文件夾修改時間而不是創建時間排序的。
文件系統是ext4
,應該支持birth time
但我有沒有運氣訪問它。
[email protected] scripts $ stat /volume1/movies/example/
File: '/volume1/movies/example/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 902h/2306d Inode: 373800961 Links: 2
Access: (0755/drwxr-xr-x) Uid: (1028/ scott) Gid: ( 100/ users)
Access: 2013-04-09 13:39:53.243991684 +1000
Modify: 2013-04-06 13:26:00.965998952 +1100
Change: 2013-04-09 11:46:23.280991727 +1000
Birth: -
但是,桑巴似乎沒有顯示正確的創建日期/時間的問題。有沒有辦法從bash訪問相同的信息?或者我將不得不編程的東西在Python /其他做我需要通過直接訪問SMB並列出每個文件夾與創建日期?
[email protected] scripts $ smbclient \\\\localhost\\movies\\
Enter scott's password:
Domain=[EXAMPLENET] OS=[Unix] Server=[Samba 3.6.9]
smb: \> allinfo "example"
altname: E06KNE~A
create_time: Fri Jun 18 17:23:49 2010 EST
access_time: Tue Apr 9 13:39:53 2013 EST
write_time: Sat Apr 6 13:26:01 2013 EST
change_time: Sat Apr 6 13:26:01 2013 EST
attributes: DA (30)
smb: \> quit
編輯:看我下面的答案我最終解決這個問題。
你可以在這裏看看[這個答案](http://unix.stackexchange.com/a/67895)。 – 2013-04-09 06:46:11