第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

比較兩個(gè)目錄,哪個(gè)目錄具有每個(gè)文件的最新版本?

比較兩個(gè)目錄,哪個(gè)目錄具有每個(gè)文件的最新版本?

PHP
開心每一天1111 2021-06-22 15:12:59
我花了很多時(shí)間尋找解決方案。我知道必須有一個(gè)已發(fā)布的解決方案,我只是找不到它。我有一個(gè)活動(dòng)目錄 (Dir1) 和一個(gè)具有相同文件名的開發(fā) (Dir2) 目錄。內(nèi)容可能不同,也可能不同,日期也是如此。使用 PHP 或 linux 命令行,我需要獲取每個(gè)文件的最新版本的目錄的遞歸列表。由于我的托管環(huán)境,我無法使用 rsync。這將為一個(gè)目錄提供一份最新修改文件的漂亮列表:find . -type f -printf '%TY-%Tm-%Td %TH:%TM: %Tz %p\n'| sort -n | tail -n20缺點(diǎn)是我必須手動(dòng)比較輸出。這很好,但它沒有顯示哪些文件較新:diff --brief -rq www/dashboard dev.efit.health/dashboard有沒有辦法使用 diff 并讓輸出顯示哪些文件較新?如果沒有,有人可以指出我正確的方向嗎?
查看完整描述

1 回答

?
料青山看我應(yīng)如是

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



查看完整回答
反對 回復(fù) 2021-06-25
  • 1 回答
  • 0 關(guān)注
  • 144 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)