簡體   English   中英

Linux:監視目錄中的文件數

[英]Linux: watch number of files in directory

我正在嘗試編寫一個Shell腳本,該腳本要等到指定目錄(例如〜/ fit /)中的文件數量達到預定義的數量。 到目前為止,我得到的是:

limit = 10
while [ls ~/fit/ | wc -l -lt $limit]
do
  sleep 1
done

這說-lt是wc的無效選項。 我也試過

[$limit -gt ls ~/fit/ | wc -l]

但它也不起作用。 任何幫助是極大的贊賞。

嘗試:

limit=10
while [ `ls ~/fit/ | wc -l` -lt $limit ];
...

你需要:

limit=10
while [ `ls ~/fit/ | wc -l` -lt $limit ]
do
  sleep 1
done

變化:

  • 不應該有周圍的空間=limit=10
  • []周圍應該有空格
  • 您需要將獲取文件計數的命令( ls ~/fit/ | wc -l )放在后面的刻度中。

嘗試這個

while(true)
do
var=`ls -l ~/fit/ | wc -l`
  if [ $var -lt 10]
  then
    sleep 1
  else
    break
  fi
done

一種解決方案,可最大限度地減少使用lswctrue等外部進程,並true管理包含換行符的文件名(不正常)的情況:

#!/bin/sh

nmax=10

while :; do
  n=0
  for f in ~/fit/*; do
    n=$((n+1))
  done
  [ $n -ge $nmax ] && break
  sleep 1
done

echo "Limit reached!"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM