看板 Linux 關於我們 聯絡資訊
※ 引述《ilay (iWork 09真是爽)》之銘言: : #!/bin/bash 找到檔案超過 2048k 的,並列出清單(含隱藏檔)加存到 log_manager.sh ??? : find -type f -size +2048k -exec ls -la {} \; >> log_manager.sh 再把目前的日期時間加存到 log_manager.sh ???????? : date >> log_manager.sh = =a 你的 log_manager.sh 是一支 shell scripts, 還要拿來存 ls 和 date 的資料... 這樣 run 起來會不正常吧? 一般是把 ls / date 的結果另存一份文字檔,而不會直接加上原 shell scripts 這個我只會拆成兩段.. : find /var/log -name "*.log" -size +2048k | xargs -i cp {} {}.`date +%Y-%m-%d-%H:%M` LISTS=`find /var/log -name "*.log" -size +2048k` for LIST in $LISTS ;do # 下面的 if 是 如果目標存在 的寫法 ... 正確是應該 如果目標不存在 才進行動作 # 忘記怎麼寫了 .. if [ -f $LIST ]; then # if [ ! -f $LIST ]; then <-- 有可能是寫成這樣 cp $LIST $LIST.`date +%Y-%m-%d` fi done if 的用法 man bash if -f file True if file exists and is a regular file. : 以上是一支 shell script 檔名為 log_manager.sh 我不太了解你的 log_manager.sh 用來存 ls 和 date 結果的目的... 可否解說一下? : 目前要加上一樣功能: : 當copy的目的地有一樣大小的檔案時(檔名不限) 則取消該檔案複製動作 : 這樣要怎麼作才好了 : 懇請先進們指教! thx -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.203.236 ※ 編輯: aeolus0829 來自: 220.130.203.236 (01/08 09:00)