Linux 批量清除檔案內容而不刪除檔案

2021-08-18 05:13:45 字數 491 閱讀 4723

清理單個檔案,可以這樣:echo > mylog.log

但是,如果我要清理一堆檔案,比如在/logs目錄下面的所有以.log結尾的檔案的內容,而不刪除檔案,該如何操作呢?

我一開始的語句是這樣的:

find /logs -name "*.log" -exec echo > {} \;

但是,執行的結果是新建了乙個名為「{}」的檔案,並沒有執行清理檔案內容的操作。

我詢問了大神之後,我的語句是這樣的:

for i in `find . -name "*.log"`; do cat /dev/null >$i; done

上面語句要在當前目錄執行,也就是,要跳轉到/logs下面執行此語句。

這條語句還可以是:for i in `find . -name "*.log"`; do echo >$i; done

但是用echo >執行的清理檔案並非完全為空的,而是有4k大小,而用cat /dev/null >清理的檔案內容大小完全為0。

Linux批量替換檔案內容

問題描述 現在需要將rack1目錄下 send檔案中的 ip 替換成 localip 10.0.0.1 n ip 剛才那個批量文字內容替換,只能替換記憶體中的內容,並不會替換文字中的內容,要替換檔案中的內容需要乙個乙個檔案去重定向,比較麻煩,本人比較懶,於是找到了一種更好的辦法 找到批量替換檔案內容...

Linux 下批量替換檔案內容

通常在網路上可以找到的方法是 sed i s oldstring newstring g grep oldstring rl path 但是其中有太多的限制,比如 無法篩選哪些檔案是你不想要的,你只能替換所有grep出來的檔案,我在專案裡遇到的一種情況是,這樣的替換會同時影響到.svn檔案,導致up...

linux下批量替換檔案內容

1 網路上現成的資料 格式 sed i s 查詢字段 替換字段 g grep 查詢字段 rl 路徑 linux sed 批量替換多個檔案中的字串 sed i s oldstring newstring g grep oldstring rl yourdir 例如 替換 home下所有檔案中的www....