2017-09-05 85 views
1

我正在尋找一個Linux腳本,當文件超過特定大小(例如50 kB)時,它允許清空文件的內容。shell腳本允許在文件超過特定大小時清空文件

我想這個腳本:

#!/bin/bash 
find /home/walid/Documents -type f -size +50k -exec echo >"{}" \; 

,但它不工作。

在另一方面,它可以很好地用於刪除文件:

#!/bin/bash 
find /home/walid/Documents -type f -size +50k -exec rm "{}" \; 

回答

0

試用一下這個:

find /home/walid/Documents -type f -size +50k -exec cp /dev/null {} \; 

這應該在任何*nix like操作系統的工作,但你也可以給一個嘗試truncate -s 0 filename

find /home/walid/Documents -type f -size +50k -exec truncate -s 0 {} \; 
+0

感謝您answer.It工作 –

1

您重定向(>)發生在find之前。您現在可能已經有一個名稱爲{}的文件。

我建議使用truncate,而不是重定向的用於覆蓋該文件:

find /home/walid/Documents -type f -size +50k -exec truncate --size 0 "{}" \; 
+0

有用。謝謝 –

+0

@ A.Walid歡迎來到Stackoverflow!如果答案解決了您的問題,請按下左側的複選標記以接受答案。如果答案有貢獻或有其他價值,請通過按下左邊的向上三角形來提示。另一方面,「謝謝」評論有禮貌,但如果使用其他任何選項,則認爲不必要(減少文本)。 – Alfe

0

你的第一個腳本一個小調整應該很好地工作:

#!/bin/bash 
find /home/walid/Documents -type f -size +50k -exec sh -c 'echo -n > {}' \; 
相關問題