Halihazırda bazı bash komut dosyalarının öğrenilmesi ve belirli bir dizindeki tüm dosyaların listelenmesi ve bunların bir dosya veya dizin olup olmadığının belirtilmesiyle ilgili bir sorunun bulunması. Sorun şu ki, sadece geçerli dizinimi almam ya da bir dizin belirtmek gerekirse, bunun bir dizin olduğunu söyleyebiliriz./home/user/shell_scripts geri dönecektir shell_scipts, içinde bulunan dosyalar yerine bir dizindir. Bu defa ne var:Belirli bir dizindeki dosyaları listelemek için Kabuk Betiği ve bunlar dosya veya dizinlerse
dir=$dir
for file in $dir; do
if [[ -d $file ]]; then
echo "$file is a directory"
if [[ -f $file ]]; then
echo "$file is a regular file"
fi
done
Gerçekten çok fazla dosya varsa, bu komut kırılabilir (komut satırı çok uzun). – user1934428
Evet, her ne kadar bu yaklaşımı çok sayıda dosya (> 10^5) için defalarca kullandım ve bir sorunum olmasa da, _possible_. 'For'/'do' /' done' yaklaşımını atlatmaya ve eğer mümkünse 'ls' ya da' find' komutunu doğrudan kullanabilmeyi isterdim. OP'ler sorusu. Buna göre güncellenir. –
Bu, boşluk veya başka özel karakterler içeren dosya isimleriyle iyi çalışmaz. – Biffen