2017-04-13 27 views
0

該請求只是特定目錄中文件的基本計數。我使用ipswitch當前的進程:從三月份的如何使用bash在命令行上計算日期範圍內特定文件的數量?

  1. 將文件複製到我的本地目錄(Windows)中
  2. 按名稱排序,如果有必要,刪除文件,我不需要計數(從我的地方)
  3. 選擇所有或特定文件,查看總數,並將其輸入到我維護的電子表格中。

的電子表格是在交付月度報告...

我知道有些Unix/Linux操作系統基礎知識,例如目錄導航,有些關於grep和幾乎一無所知發現。

我無法弄清楚如何在一個特定的日期範圍內按月查找文件的目錄,並且統計有多少個文件...有時會使用特定的名稱或擴展名。我以爲

ls -l |grep ...something something... 

可能工作,但我已經打了一堵牆。

讓我知道是否需要更多信息,抱歉如此羅嗦。

回答

0

您可以使用find來篩選和wc來計數。

find . -mtime -$start -mtime +$end | wc -l 

由於的方式-mtime截斷,和比較的專屬性質,這是一個有點棘手,首先得到的權利,但可行的。

find /some/path -mtime +0 # Find files modified prior to 1 day ago. 
find /some/path -mtime -0 # Find files modified after 1 day ago. 
find /some/path -mtime +1 -mtime -6 # Files modified between 2 and 7 days ago. 

例如,假設是4月2日,並且您希望所有3月。您的$開始將是31,您的$結束將是0

要在4月13日運行同一報告,您的$ start將爲42,您的$ end將爲13

+0

是對當前點目錄? – Emile

+0

是的,如果你願意,你可以給一個固定的路徑。 – phatfingers

+0

我還是不太明白如何將這個應用到我的困境中......我會明天再回來查看並提供更多信息。 – Emile

1

您也可以使用-newerXY選項find直接在兩個日期之間搜索目錄內(和下方)的文件。日期格式可以包括具有保真度時間下降到第二(例如"2017-04-13 21:35:58"或一般"yyyy-mm-dd h:m:s"

選項的一般形式是-newerXY其中XY可以是a訪問時間之一,B出生時間,c inode的狀態改變時間m修改時間和t直接解釋爲時間。

兩個給定日期之間的搜索(比如2016年11月),你可以使用find類似形式:

find /path/to/files -type f -newermt "2016-10-30 23:59:59" \ 
! -newermt "2016-12-01 00:00:00" 

,將列出2016十月底和12月初之間的所有文件2016(例如在2016年11月),其中

  • -type f限制了找到「文件」而不是「文件&目錄」
  • -newermt "2016-10-30 23:59:59"文件最後一秒後修改
  • ! -newermt "2016-12-01 00:00:00",而不是修改後修改的所有文件在11月的最後一秒

當然,'\'只是一個簡單的連續字符,用於分隔日期測試之間的界限,因此它不會生成水平在這個答案中的滾動條 - 你可以省略它,並把所有內容放在一行上。

如果您需要對文件進行計數,只需將其輸出爲wc -l作爲phatfingers在他之前的答案中顯示。一個簡單的方法將文件日期排序僅僅是在命令替換使用find作爲參數ls -t,例如,(與其他任何選項來ls您可能希望沿着):

$ ls -lrt $(find . -newermt 2016-10-30 ! -newermt 2016-12-01) 
-rw-r--r-- 1 david david 3180 Nov 9 13:02 ./inventory2.c 
-rw-r--r-- 1 david david 769 Nov 19 23:00 ./xfree.c 
-rw-r--r-- 1 david david 1375 Nov 20 16:14 ./reallocprob.c 
-rw-r--r-- 1 david david 98 Nov 21 00:39 ./hw.c 
-rw-r--r-- 1 david david 530 Nov 25 23:10 ./tools2/tools.c 
-rw-r--r-- 1 david david 1175 Nov 25 23:15 ./tools2/main.c 
-rw-r--r-- 1 david david 174 Nov 25 23:16 ./tools2/tools.h 
-rw-r--r-- 1 david david 424 Nov 26 00:28 ./tools/tsave.c 
-rw-r--r-- 1 david david 106 Nov 26 01:34 ./tools/tools.h 
-rw-r--r-- 1 david david 909 Nov 26 01:53 ./tools/main.c 
-rw-r--r-- 1 david david 525 Nov 26 02:45 ./tools/tools.c 
-rw-r--r-- 1 david david 1732 Nov 27 23:53 ./nogets.c 
-rw-r--r-- 1 david david 530 Nov 30 22:17 ./resolution.c 
相關問題