プログラミングの課題の一環として、ファイルとディレクトリ(隠しアイテムを含む)の数を繰り返し計算するコードスニペットを作成する必要があります。またはコマンドは使用できません-R
。find
du
以下が利用可能であることを理解しています。
listAllFiles() {
local dir=$1
local file
directoryCounter=0
fileCounter=0
hiddenFileCounter=0
hiddenDirectoryCounter=0
for file in "$dir"/*; do
if [[ -d $file ]]; then
listAllFiles "$file"
directoryCounter+=1
else if [[ -f $file ]]
fileCounter+=1
else if [[hidden directory]]
hiddenDirectoryCounter+=1
else if [[hiddenfile]]
hiddenFileCounter+=1
fi
done}
else ifステートメントに隠しファイルとディレクトリを含める方法はありますか?
ベストアンサー1
最も簡単な方法bash
は実行することですshopt -s dotglob
。これによりbash
、globに隠しファイルを含めるように求められます。
これをしたくない場合(たとえば、その機能を持たないシェルを使用している場合)、次のglobを使用できます.[!.]* ..?* *
。明らかな複雑さは、.
sumの一致を避けることです..
。最初のglob.
はで始まりますが、2文字以上の隠しファイルと一致します..
。 2番目は、3文字以上で始まる隠しファイルと一致します..
。最後は隠されていないファイルの一般的な塊です。
else ifステートメントに隠しファイルとディレクトリを含める方法はありますか?
実際、これはfor
あなたが見なければならない声明です。"$dir"/*
上記の2つの他のグローバルモードを含めるように変更するだけです。