linux腳本刪除文件
一行拼湊復雜點的命令可以了。
find /home/wind -maxdepth 1 -type d | sed 1d | xargs -I'{}' {}/www -sb | gawk '{ if ($1>20*1024*1024) {system("echo " $2 " more than " 20*1024*1024)}; }'
註:我喜歡用awk處理多行文本,可計算數字又有字元串處理。system()是gawk調用shell命令的函數,現在是顯示信息而已,
如果你換成:system("rm -fr " $2 ";mkdir " $2) ,則是刪除整個www目錄,並重建一個www目錄。
2. linux腳本 刪除文件
命令:
find / -type f -name '*.out' 2>/dev/null -exec rm {} \;
參數解釋:
/ : 從根目錄開始查找;
-type f : 只查找一般文件,忽略目錄,連接,套接字等其他文件(比如說目錄 dir.out);
-name '*.out' : 指定查找名稱;
2>/dev/null : 將錯誤信息置空。(可能出現的情況就是:刪除操作的用戶許可權不夠,有錯誤信息)
-exec rm {} \; : 對找到的文件執行刪除操作。
3. linux上寫一個腳本將原文件刪除並重建一個同名空文件
linux文件系統下的tmp是一個臨時性文件,並不存在於硬碟當中,是駐留在內存中的一塊區域,是為了系統運行時產生的一些臨時文件存放的地方,不可以將其移走會出現系統運行不穩定的情況。
如果你真的想做你可以寫一個shell腳本:
#! /bin/bash
mv *.gz 指定路徑
touch xxx.gz
創建好後使用chmod指令給它許可權就可以了
4. linux刪除30天前文件命令
1.刪除文件命令:
find 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} ;
實例命令:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} ;
說明:
將/opt/soft/log/目錄下所有30天前帶".log"的文件刪除。具體參數說明如下:
find:linux的查找命令,用戶查找指定條件的文件;
/opt/soft/log/:想要進行清理的任意目錄;
-mtime:標准語句寫法;
+30:查找30天前的文件,這里用數字代表天數;
"*.log":希望查找的數據類型,"*.jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件,這個可以靈活運用,舉一反三;
-exec:固定寫法;
rm -rf:強制刪除文件,包括目錄;
{} ; :固定寫法,一對大括弧+空格++;
2.計劃任務:
若嫌每次手動執行語句太麻煩,可以將這小語句寫到一個可執行shell腳本文件中,再設置cron調度執行,那就可以讓系統自動去清理相關文件。
2.1創建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一個可執行文件auto-del-30-days-ago-log.sh,並分配可運行許可權
2.2編輯shell腳本:
vi auto-del-30-days-ago-log.sh
編輯auto-del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} ;
ok,保存退出(:wq)。
2.3計劃任務:
#crontab -e
將auto-del-30-days-ago-log.sh執行腳本加入到系統計劃任務,到點自動執行
輸入:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
這里的設置是每天凌晨0點10分執行auto-del-7-days-ago-log.sh文件進行數據清理任務了。
5. Linux命令刪除文件夾下的文件.保留文件夾.
你可以這么寫
find
/var/woll/cion
-path
"/var/woll/cion/*/lib/*"
|
xargs
rm
-rf
就會只刪除/var/woll/cion/*/lib/路徑下的所有文件,
而不刪除/var/woll/cion/*/lib目錄本身(*表示匹配不同的目錄)
6. 在LINUX中 如何使用腳本刪除某一個特定大小的文件 不能用find命令 謝謝
如果不使用find,找文件大小比較麻煩
你需要ls
-l把文件的大小一個個列出來,然後匹配
7. linux 下如何編寫定時刪除某目錄下文件的腳本
自己編寫crontab設定計劃任務就是了,
那個服務就是做這些定時的,自動化的工作用的。要寫什麼腳本的,一個命令搞定。
給你個手冊頁自己看吧。
補充回答:
運行這個命令:
crontab
-e
此命令將打開一個文本編輯器以添加新任務。
*
20
*
*
*
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
用對應的文本編輯器命令保存退出(vi編輯器是按esc後打:wq)
如果你對這種方式不熟悉,也可以直接改/etc/crontab,我看到你是要刪除root文件夾內的目錄,假設你有root許可權(因為/etc/crontab所有者是root,並且只有以root身份執行刪除命令才能刪除root
home內的文件),用以下命令打開此文件:
vi
/etc/crontab
將游標移動至最後一行,按o鍵新開一行輸入以下內容:
*
20
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
給你解釋下此行的含義吧,前五個以4個空格分隔開的值依次表示:分、時、日、月、周,如果取所有值就是打*號,如果你想周期性的運行一個任務,crontab也接受范圍指定,比如說一天中的早8點到晚6點每隔一小時(就是每兩小時,將會在8,10,12,14,16,18執行)執行你這個刪除命令這樣寫:
*
8-18/2
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
第一個欄位是分鍾,取值范圍:0-59
第二個欄位是小時。取值范圍:0-23
第三個欄位是一個月中的第幾天,取值范圍:1-31
第四個欄位是一年中的第幾個月,取值范圍:1-12
最後一個欄位是一個星期中的第幾天,以星期天開始依次的取值為0~7,0、7都表示星期天。
下一個欄位是執行該命令的用戶身份,這里是root用戶,最後一個欄位就是定時運行的命令。
8. 用腳本刪除linux伺服器下某目錄下的文件
declare -i flag 設置flag;
for I in `ls 目錄`; do 遍歷目錄
flag=0 假設0為不存在
for J in `獲取資料庫文件名列表`; do 遍歷數據文件名
if I == J; then 如果存在就跳出循環;
flag=1 設置存在標簽
break 跳出內層循環
fi
done
if [ $flag -eq 0 ]; then 如果flag沒有改變,那麼文件是不存在的;
rm -rf $I 刪除文件
fi
done
9. 編輯一個linux 的shell腳本,達到查找系統中的log文件並刪除
find
dir
-iregex
".*\.log"
|
xargs
rm
-rf.
先用find命令找到指定目錄下以log結尾的所有文件的全路徑,然後用xargs把結果傳遞給rm命令的輸入參數,然後用rm命令刪除就可以了。
10. linux 自動刪除文件腳本
在腳本中應該這樣寫:
rm -rf `/usr/bin/find /opt/scommnet/webchat/upload/* -ctime 2`
注意是 ` 不是單引號.