home > OS > linux >

文件時間日期:–atime –ctime –mtime區別

hits:

modification time(mtime):內容修改時間 status time(ctime):狀態修改時間 access time(atime):最后訪問時間,文件的 ctime、mtime、atime 之間有什么區別? ls顯示出的time 是mtime,如何查看atime ctime?-mtime +n -n n參數區別?

modification time(mtime):內容修改時間/status time(ctime):狀態修改時間/access time(atime):最后訪問時間。

文件的 ctime、mtime、atime 之間有什么區別? 

linux文件時間截點:atime、ctime與mtime

  • atime是指access time,即文件被讀取或者執行的時間,修改文件是不會改變access time的

    Time whenfile data was last accessed. Changedby  the following  functions:  creat(),  mknod(),  pipe(),utime(2), and read(2).

  • mtime即modify time,指文件內容被修改的時間,是在寫入文件時隨文件內容的更改而更改的

    Time whendata was last modified. Changed bythe  fol- lowing  functions:  creat(),mknod(), pipe(), utime(), andwrite(2).

  • ctime即change time文件狀態改變時間,是在寫入文件、更改所有者、權限或鏈接設置時隨 Inode 的內容更改而更改的

    Time whenfile status was last changed. Changed by the following  functions:  chmod(),  chown(),  creat(), link(2),  mknod(),  pipe(),  unlink(2),  utime(),  and write().

各操作對三個時間參數的影響


操作atimemtimectime
mv沒變沒變變了
cp變了沒變沒變
touch

變了

變了變了
cat/more/less

變了

沒變沒變
ls沒變沒變沒變
chmod/chown沒變沒變變了
ln沒變沒變變了
echo 沒變沒變沒變
vi沒變變了變了

網上很多資料都聲稱cat、more等讀取文件的命令會改變atime,但是我試驗時卻發現使用cat、more時atime沒有被修改。這個問題需要另外做研究探討。

ls顯示出的time 是mtime,如何查看atime ctime?

linux查看文件ctime、atime、mtime命令

  • ls -lc test :查看test文件的ctime

  • ls -lu test :查看test文件的atime

  • ls -l test:查看test文件的mtime

–mtime中的參數n

–mtime n中的n指的是24*n(即n天), +n、-n、n分別表示:

  • +n:大于n,操作發在n+1天以前

  • -n:小于n,操作發生在n天以內

  •  n:等于n,操作剛好在n天時


按日期批量移動文件 

  • find . –mtime n:  File waslast modified n*24 hours ago.

    最后一次修改發生在距離當前時間n*24小時至(n+1)*24 小時

  • find . –mtime +n:

  • 最后一次修改發生在n+1天以前,距離當前時間為(n+1)*24小時或者更早

  • find . –mtime –n:

  • 最后一次修改發生在n天以內,距離當前時間為n*24小時以內

批量移動文件案例:

find . -mtime -n 10  | xargs mv {} ../destinationPath

Linux find按日期查找文件:如 查找可疑的木馬文件

  • 查找:30天內被修改的文件

    find  ./  -mtime  -30  -type f  -exec ls -l  {} \;

  • 找到目錄下所有的txt文件

    find ./ -name "*.txt" -print

  • 找到目錄下所有的txt文件并刪除

    find ./ -name "*.txt" -exec rm -rf {} \;

  • 找到目錄下所有的php文件 并且在30天之類被修改的文件

    find  ./ -name "*.php" -mtime  -30  -typef  -exec  ls -l  {} \;

  • 找到目錄下所有的php文件,同時,滿足 30天以內,1天之前的

    find ./ -name "*.php" -mtime -30 -mtime +1 -type f -execls -l {} \;

參考文章:

Linux常用命令之 查找命令 find —— 細說 -atime,-mtime,-ctime https://www.cnblogs.com/qiaopei/p/5515189.html

linux中ctime,mtime,atime的區別 https://www.cnblogs.com/PandoraX/p/4568879.html

Find–atime –ctime –mtime的用法與區別總結 https://blog.csdn.net/abcdef0966/article/details/7607545




轉載本站文章《文件時間日期:–atime –ctime –mtime區別》,
請注明出處:http://www.qsexmk.tw/html/os/linux/8222.html