幾個月前,一位童鞋希望我能寫個指令碼,合併指定資料夾下面所有的檔案,如果資料夾下有目錄,則遞迴找到所有檔案,合併為乙個檔案。這相當於遍歷乙個目錄,當時第一反應就是python 的os.walk,很快乙個14 行的指令碼就出來了,我很驕傲地將「如此短」的 **交給了童鞋:
import os
import sys
import shutil
rootdir = sys.argv[1]
newfile = sys.argv[2]
f = open(newfile, "wb");
for root, subfolders, files in os.walk(rootdir):
for filename in files:
filepath = os.path.join(root, filename)
print filepath
shutil.copyfileobj(open(filepath,'rb'), f)
f.close()
後來稍微看看了shell,發現自己根本是弱爆了,shell 完全能夠一行完成的任務:
find . -type f -exec cat {} \;>all_files.txt
find . 遞迴從本資料夾開始查詢檔案-perm 根據檔案許可權查詢檔案
-user 更具檔案所有者查詢檔案
-delete 將刪除查詢到的檔案
-exec 對查詢到的檔案執行命令,格式為: -exec ./commands.sh {} \;
學習參考 一起學shell
如下 一起學shell之 一 背景知識 一起學shell之 二 輸出以及其它 一起學shell之 三 查詢與替換 一起學shell之 四 文字處理以及管道 一起學shell之 五 變數判斷重複 第一次編輯.一起學shell之 六 輸入 輸出 檔案與命令執行 一起學shell之 七 產生指令碼以及aw...
學習參考 一起學shell
如下 一起學shell之 一 背景知識 一起學shell之 二 輸出以及其它 一起學shell之 三 查詢與替換 一起學shell之 四 文字處理以及管道 一起學shell之 五 變數判斷重複 第一次編輯.一起學shell之 六 輸入 輸出 檔案與命令執行 一起學shell之 七 產生指令碼以及aw...
一起學Makefile(一)
make和makefile makefile檔案幫助我們記錄了整個專案工程的所有需要編譯的檔案列表,這樣我們在編譯時僅需要輸入簡單的make命令就能編譯出我們期望的結果。makefile檔案反映了整個專案中各個模組的依賴關係,這樣我們改動了某些原始檔以後,僅需簡單的輸入make命令,make工具就會...