一起學shell(一) 合併資料夾下所有檔案

2021-06-17 15:04:04 字數 869 閱讀 2717

幾個月前,一位童鞋希望我能寫個指令碼,合併指定資料夾下面所有的檔案,如果資料夾下有目錄,則遞迴找到所有檔案,合併為乙個檔案。這相當於遍歷乙個目錄,當時第一反應就是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工具就會...