Linux

使用最新文件的時間戳創建目錄

  • September 24, 2019

我正在嘗試根據目錄中兩個最新文件的時間戳創建一個目錄,然後將這兩個文件複製到新創建的目錄中。所以例如

-rw-r--r-- 1 root root 0 Sep 24 12:01 a

-rw-r--r-- 1 root root 0 Sep 24 12:01 b

我想創建一個名為的目錄並將其20190924複製到目前目錄中最新文件的目錄中a``b

此 zsh 腳本將選取目前目錄中的兩個最新(普通)文件,收集最新文件的修改時間戳,將該時間戳轉換為 YYYYmmdd 格式,創建目錄,然後將這兩個最新文件複製到該目錄中:

#!/bin/zsh

newest2=( *(.om[1,2]) )
dsec=$( stat -c %Y "${newest2[1]}" )
dnam=$( date -d @"$dsec" +%Y%m%d )
mkdir "$dnam"
cp -- "${newest2[@]}" "$dnam"

第一行,assigning使用限定符(在括號中)newest2擴展萬用字元。*預選賽要求:

  • .– 普通文件
  • om– 按修改時間排序(從最新到舊集)
  • [1,2]– 對列表進行切片以僅包含元素 1 到 2

然後我們要求stat以秒為單位的最新文件的修改時間;該日期被傳遞給 GNU date,它以我們想要的格式返回目錄名稱。創建目錄後,該cp命令將兩個文件複製到該目錄中。

引用自:https://unix.stackexchange.com/questions/543417