查詢有特定檔案的子目錄 --- ls命令的妙用
問題描述在目錄“/data/”下有非常多的子目錄(一千個左右),目錄名是型別名稱,每個小時產生的資料按型別區分寫入到對應的子目錄中,檔案命名方式是“yyyymmddhh”,每個子目錄中的檔案數平均約500個。一小時內不一定每總型別的資料都有,也就是說有些子目錄下沒有那個小時的資料檔案的。現在的需求是:整點定時出一份上一小時有資料的型別名稱列表,一行一個型別名稱(子目錄名)寫入一個文字檔案中
/data/
|-- type_1
| |-- 2013061809
| |-- 2013061808
|-- type_2
| |-- 2013061808
問題分析 此問題看粗看起來很簡單,只要迴圈的判斷所有子目錄是否存在上個小時的資料檔案就可以了。功能是完全沒問題的,但程式碼總感覺有點羅嗦,效能似乎也不是很好。於是尋找到了更優的解決方案,主要是ls結合萬用字元的一個妙用,大家一看就明白
ls -1 /data/*/`date -d -30minutes +%Y%m%d%H`|awk -F"/" '{print $3}' > /tmp/list.txt
相關推薦
查詢有特定檔案的子目錄 --- ls命令的妙用
問題描述在目錄“/data/”下有非常多的子目錄(一千個左右),目錄名是型別名稱,每個小時產生的資料按型別區分寫入到對應的子目錄中,檔案命名方式是“yyyymmddhh”,每個子目錄中的檔案數平均約500個。一小時內不一定每總型別的資料都有,也就是說有些子目錄下沒有那個小時
檔案重定向至指令碼 tty命令妙用
前兩天遇到一個很棘手的問題:我有一個shell指令碼,例如test.sh執行的時候不接收引數或者接收檔案重定向兩種方式./test.shor./test.sh < test.txt 看似簡單的要求,但是理想與現實之間總是會有差距,以為使用一些位置變數$1,$2或特定變
三天不念口生,三天不寫手生,Linux基本命令Find,grep妙用檔案檔案內容檢索(查詢)好幫手
Find,grep 可以輕鬆實現對指定檔案和目錄的查詢,檢視,刪除,***內容的清理等等……雖然不及sed\awk\功能強大和複雜,但其方便易用結合其它命令還是可以為我們提供強大的實用功能 1、 查詢檔案建立如下結構檔案和資料夾,使用find查詢my5.txt find ./ -name my5.t
ls命令(列出所有子目錄與檔案)
例5:用長格式列出某個目錄下所有的檔案包括隱藏檔案和它們的i節點號。並把檔案屬主和屬組以UID號和GID號的形式顯示。$ 1s -1ainF /home/xu tota1 584 399672 有三種不同型別的使用者可對檔案或目錄進行訪問:檔案所有者,同組使用者、其他使用者。所有者一般是檔案的建立者。所有者可
linux命令之----ls命令查詢檔案的所有者、許可權、時間、大小等資訊
1、ls命令作用 ls命令用於顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄) 2、ls命令結構 drwxr-xr-x 2 root root 4.0K 3月 23 2017 etc “d” 表示檔案的型別為目錄 “rwx” 表示檔
如何在Linux中使用ls命令按大小對所有檔案進行排序
ls命令是列出目錄內容的最流行且非常有用的命令。 在本文中,我們將解釋如何使用ls sort選項按大小列出目錄內容。 1)按大小列出目錄中的檔案(排序) 要列出具有大小排序的特定目錄的內容,我們將使用-lS選項和ls命令。 它將在頂部顯示最大的檔案。 輸出: 總用量 60-rw-rw-r--.&nb
如何在Linux中使用ls命令按日期對檔案進行排序
ls命令用於列出目錄內容,結果可以按幾個條件排序,例如按日期,按字母順序排列的檔名,修改時間,訪問時間,版本和檔案大小。 在本文中,我將向您展示如何使用Linux中的ls命令按日期對檔案進行排序。 1)列出具有上次修改日期/時間的檔案目錄 要列出檔案並在頂部顯示最後修改的檔案,我們將使用-lt選項和
檔案管理 常用命令 ls 、touch、cp、mv、rm、mkdir、rmdir、alias
1、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的檔案或目錄2、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的檔案或目錄3、顯示/etc/目錄下以非字母開頭,後面跟了一個字母及其它任意長度任意字元的檔案或目錄4、顯示/etc/目錄下所有以rc開頭,並後面是0-
rm命令如何在刪除檔案時排除忽略某特定檔案
方法一、使用擴充套件萬用字元 1 首先開啟擴充套件萬用字元 shopt -s extglob 2 也可以先檢視是否開啟 shopt -s 3 在test資料夾下有1.tt、1.png、index.html,現在要刪除除1.tt之外的所有檔案,則可以執行
[150722]查詢某個時間段的檔案和find命令
查詢某個時間段的檔案和find命令 查詢某個時間段的檔案,比如要查詢2012年8月30號的郵件 首先建立兩個檔案 www.2cto.com touch -t 201208300000 file1 touch -t 20120830
Linux下find命令在根目錄下查詢不到檔案
你遇到過linux下root使用者執行find命令按檔名在根目錄下查詢不到指定檔案的情況嗎?如果你遇到這種情況,你分析可能有哪幾種原因導致?這裡記錄一下這個有意思的問題,包括問題場景和解決方法。 問題現象 實現一個工具,需要在root命令下執行普通使用者user1下的stop_
SVN使用log,list,cat,diff命令檢視特定檔案版本資訊
svn log 展示給你主要資訊:每個版本附加在版本上的作者與日期資訊和所有路徑修改。 svn diff 顯示特定修改的行級詳細資訊。 svn cat 取得在特定版本的某一個檔案顯示在當前螢幕。 svn lis
grep 不查詢特定檔案或資料夾的方法
method 1: egrep -irn --exclude="tags" --exclude="cscope.*" --exclude-dir=".repo/" --exclude-form=<PATH>/exclude.list
Linux 底下 檔案過多導致 ls 命令出現 arguments too long 的問題
作為一個linux使用者/系統管理員, 有些時候你會遇到以下錯誤提示: [[email protected] foo]$ mv * ../foo2 bash: /bin/mv: Argument list too long “Argument list t
查詢某個時間段的檔案和find命令
查詢某個時間段的檔案,比如要查詢2012年8月30號的郵件 首先建立兩個檔案 touch -t 201208300000 file1 touch -t 201208302359 file2 然後利用find命令的newer選項查詢8月
linux中ls命令:(顯示指定目錄裡的檔案及資料夾清單)
列出目錄下的所有檔案,包括以 . 開頭的隱含檔案。 -A,–almost-all 列出除了 . 及 .. 以外的任何專案 –author 印出每個檔案的作者 -b,–escape 把檔名中不可輸出的字元用反斜
[linux ]find命令是用正則匹配目錄查詢檔案
我們經常是用linux下的find命令去查詢搜尋日誌,比如伺服器一堆按日期的日曆,我要搜尋/var/logs/projects的2013年12月的txt日誌檔案中包含date字元,如下: find /var/logs/projects/ -name "2013-12-*.
Linux命令——ls命令用來顯示目錄中檔案的名字
1、引數說明 -a 列出目錄下的所有檔案,包括以 . 開頭的隱含檔案。 -b 把檔名中不可輸出的字元用反斜槓加字元編號(就象在C語言裡一樣)的形式列出。 -c 輸出檔案的 i 節點的修改時間,並以此排序。 -d 將目錄象檔案一樣顯示,而不是顯示其下的檔案。
ls命令(檢視檔案與目錄)--總結與整理
ps:ls命在Linux系統使用的頻率相當高,但基本上日常使用的引數並不多,今天回顧時發現了幾個不常用但很重要的使用引數,故記錄下。 ls(list)命令用來顯示目標列表,在Linux中是使用率較高的命令。ls命令的輸出資訊可以進行彩色加亮顯示,以分割
Linux下遍歷查詢某的檔案包含某個關鍵字的命令
如下命令 grep -rnw '/path/to/somewhere/' -e "pattern" -r 或者 -R 為遞迴查詢, -n 是行號 -w 為要求全匹配. -l (小寫L) 引數可以只列出檔名. 除此以外, –exclude 或者 –include 引數可