1 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
給定以dir1和為根的兩個(gè)文件層次結(jié)構(gòu)dir2,其中每個(gè)層次結(jié)構(gòu)都包含完全相同的文件名集,您可以使用 find 命令的變體來列出每對文件中較新的文件。
如果時(shí)間戳匹配,此代碼將隨機(jī)打印一個(gè)文件,但您可以通過適當(dāng)?shù)倪^濾選擇其他一些行為。
shownewer(){
find "$1"/ "$2"/ -type f -printf '%T@ :%p\n' |\
sort -r |\
sort -t/ -s -k2,2 |\
sed 's/^[0-9.]* ://;n;d'
}
find 打印帶有時(shí)間戳的文件(自紀(jì)元以來的小數(shù)秒)
sort反向按時(shí)間戳的第一個(gè)訂單
第二個(gè)sort忽略頂級(jí)目錄并按路徑的剩余部分排序
sed 打印每對的第一個(gè)文件
警告:如果文件夾不包含完全相同的文件集,則輸出可能完全錯(cuò)誤。一次刪除可能真的把事情搞砸了。
使用以下內(nèi)容進(jìn)行測試:
# create test data
$ mkdir dir1 dir2
$ touch {dir1,dir2}/{1,2,3,4,5}
$ sleep 1
$ touch dir1/2 dir2/{3,5}
$ shownewer dir1 dir2
dir2/1
dir1/2
dir2/3
dir2/4
dir2/5
- 1 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報(bào)