Arkasokak Logo
Kayıtsız, hoş geldiniz.





Forum Arkasokak > HAYATIN İÇİNDEN > İnternet Teknoloji Tasarım » Linuxta ls komutu kullanımına örnek
ls,ls-l,ls-s,ls-S,ls--help,ls-a komutlarınıda barındıran bir program komut satırı ile çalısmakta $k=$ARGV[0]; if(scalar(@ARGV)==0) { opendir(KONUM,"."); @lis=readdir(KONUM); foreach(@lis) { if($_!~/^\./) { print"(f)$_\n"if(-f $_); ...

Cevap
  #1  
Eski 07-03-2006, 10:15 AM
empedoCles kullanıcısının avatarı
Müdavim
 
Giriş: Sep 2005
Mesaj: 123
empedoCles İtibar düzeyini kapadı
Linuxta ls komutu kullanımına örnek

ls,ls-l,ls-s,ls-S,ls--help,ls-a komutlarınıda barındıran bir program komut satırı ile çalısmakta$k=$ARGV[0];

if(scalar(@ARGV)==0)
{
opendir(KONUM,".");
@lis=readdir(KONUM);

foreach(@lis)
{
if($_!~/^\./)
{
print"(f)$_\n"if(-f $_);
print"(d)$_\n"if(-d $_);
}
}
print"\n";
close(KONUM);
}



if(scalar(@ARGV)==1)
{

if($k eq '-s')
{
opendir(KONUM,".");
@lis=readdir(KONUM);

foreach(@lis)
{
if($_!~/^\./)
{
print(-s $_);
print"\t";
print"(f)$_"if(-f $_);
print"(d)$_"if(-d $_);
#print"\t";
#print(-s $_);
print"\n";
}
}
print"\n";
close(KONUM);
}

if($k eq '-a')
{
opendir(KONUM,".");
@lis=readdir(KONUM);
foreach(@lis)
{
print"(d)$_\n"if(-d $_);
print"(f)$_\n"if(-f $_);
}
close(KONUM);
}
if($k eq '-S')
{
opendir(KONUM,".");
@lis=readdir(KONUM);
$boyut=scalar(@lis);
for($i=0;$i<($boyut);$i++)
{
for($m=0;$m<=$boyut;$m++)
{
if((-s $lis[$i])>=(-s $lis[$m]))
{
$temp=$lis[$m];
$lis[$m]=$lis[$i];
$lis[$i]=$temp;
}
}
}
foreach (@lis)
{
if($_!~/^\./)
{
print"(f) $_ \n" if(-f $_) ;
print"(d) $_ \n" if(-d $_) ;
}
}
closedir(KONUM);

}


if($k eq '-l')
{
opendir(KONUM,".");
@lis=readdir(KONUM);
foreach(@lis)
{
if($_!~/^\./)
{
if(-d $_)
{$d='d';}
else
{$d='-'}
if(-f $_)
{$f='f';}
else
{$f='-';}
if(-r $_)
{$r='r';}
else
{$r='-';}
if(-w $_)
{$w='w';}
else
{$w='-';}
if(-x $_)
{$x='x';}
else
{$x='-';}
#$date=system("date --reference=$_");
#$date=system("date --reference=$_");
#$m=substr($date,12,21);
printf("%2s%2s%2s%2s%2s ",$d,$f,$r,$w,$x);
#print(-O $_ );
#print" ";
print(-o $_ );
print" ";
print(-s $_ );
print"\t";
system("date --reference=$_ > zaman.txt;");
open ("F","zaman.txt");
$ata=<F>;
@gun=split(/ /,$ata);
$bo=scalar(@gun);
for($i=0;$i<($bo-2);$i++)
{
printf ("%s ",$gun[$i] );
}
print"\t";
print"(d)$_"if(-d $_);
print"(f)$_"if(-f $_);
print"\n";

}
}
close(KONUM);
}
if(($k eq '-sa') || ($k eq '-as'))
{
opendir(KONUM,".");
@lis=readdir(KONUM);

foreach(@lis)
{

print(-s $_);
print"\t";
print"(f)$_"if(-f $_);
print"(d)$_"if(-d $_);

print"\n";

}
print"\n";
close(KONUM);
}
if(($k eq '-sS') || ($k eq '-Ss'))
{
opendir(KONUM,".");
@lis=readdir(KONUM);
$boyut=scalar(@lis);
for($i=0;$i<($boyut);$i++)
{
for($m=0;$m<=$boyut;$m++)
{
if((-s $lis[$i])>=(-s $lis[$m]))
{
$temp=$lis[$m];
$lis[$m]=$lis[$i];
$lis[$i]=$temp;
}
}
}
foreach (@lis)
{
if($_!~/^\./)
{
print (-s $_);
print"\t";
print"(f) $_ " if(-f $_) ;
print"(d) $_ " if(-d $_) ;
print"\n";
}
}
closedir(KONUM);

}


if(($k eq '-al') || ($k eq '-la'))
{
opendir(KONUM,".");
@lis=readdir(KONUM);
foreach(@lis)
{
if(-d $_)
{$d='d';}
else
{$d='-'}
if(-f $_)
{$f='f';}
else
{$f='-';}
if(-r $_)
{$r='r';}
else
{$r='-';}
if(-w $_)
{$w='w';}
else
{$w='-';}
if(-x $_)
{$x='x';}
else
{$x='-';}

printf("%2s%2s%2s%2s%2s ",$d,$f,$r,$w,$x);
print(-o $_ );
print" ";
print(-s $_ );
print"\t";
system("date --reference=$_ > zaman.txt;");
open ("F","zaman.txt");
$ata=<F>;
@gun=split(/ /,$ata);
$bo=scalar(@gun);
for($i=0;$i<($bo-2);$i++)
{
printf ("%s ",$gun[$i] );
}
print"\t";
print"(d)$_"if(-d $_);
print"(f)$_"if(-f $_);
print"\n";
}
close(KONUM);
}

if(($k eq '-Sl') || ($k eq '-lS'))
{
opendir(KONUM,".");
@lis=readdir(KONUM);
$boyut=scalar(@lis);
for($i=0;$i<($boyut);$i++)
{
for($m=0;$m<=$boyut;$m++)
{
if((-s $lis[$i])>=(-s $lis[$m]))
{
$temp=$lis[$m];
$lis[$m]=$lis[$i];
$lis[$i]=$temp;
}
}
}

foreach(@lis)
{
if($_!~/^\./)
{
if(-d $_)
{$d='d';}
else
{$d='-'}
if(-f $_)
{$f='f';}
else
{$f='-';}
if(-r $_)
{$r='r';}
else
{$r='-';}
if(-w $_)
{$w='w';}
else
{$w='-';}
if(-x $_)
{$x='x';}
else
{$x='-';}
printf("%2s%2s%2s%2s%2s ",$d,$f,$r,$w,$x);

print(-o $_ );
print" ";
print(-s $_ );
print"\t";
system("date --reference=$_ > zaman.txt;");
open ("F","zaman.txt");
$ata=<F>;
@gun=split(/ /,$ata);
$bo=scalar(@gun);
for($i=0;$i<($bo-2);$i++)
{
printf ("%s ",$gun[$i] );
}
print"\t";
print"(d)$_"if(-d $_);
print"(f)$_"if(-f $_);
print"\n";

}
}
close(KONUM);
}

if(($k eq '-Sa') || ($k eq '-aS'))
{
opendir(KONUM,".");
@lis=readdir(KONUM);
$boyut=scalar(@lis);
for($i=0;$i<($boyut);$i++)
{
for($m=0;$m<=$boyut;$m++)
{
if((-s $lis[$i])>=(-s $lis[$m]))
{
$temp=$lis[$m];
$lis[$m]=$lis[$i];
$lis[$i]=$temp;
}
}
}
foreach (@lis)
{
print"(f) $_ \n" if(-f $_) ;
print"(d) $_ \n" if(-d $_) ;
}

closedir(KONUM);
}
if($k eq '--help')
{
print"
LS KOMUTU

İSİM

ls . dizinlerin içindekileri listeler

KULLANIM

ls [SEÇENEK]... [DOSYA]...

AÇIKLAMA

(Öntanımlı olarak içinde bulunulan dizindeki) DOSYAlarla ilgili
bilgileri görüntüler. -cftuSUX veya --sort seçeneklerinden hiçbiri
verilmemişse, alfabetik sıraya göre listeleme yapar.
Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için
de zorunludur.

-a
--all
. (nokta) ile başlayan dosyaları gizlemez.

-A
--almost-all
İsimlerinde . ve .. bulunan dosyaları listelemez.
--author
Her dosyanın yazarını basar.

-b
--escape
Basılamayan karakterler için sekizlik tabandaki değerlerini basar.
--block-size=BOYUT
BOYUT baytlık bloklar kullanılır.

-B
--ignore-backups
~ ile sona eren dosya isimlerini listelemez.

-c
-lt ile birlikte dosya durum bilgilerinin son düzenlendiği zamana göre sıralar ve ve bu zamanı gösterir. -l ile
birlikte kullanıldığında ise isme göre sıralar ve dosya durum bilgilerinin son düzenlendiği zamanı gösterir.
Aksi takdirde, dosya durum bilgilerinin son düzenlendiği zamana göre sıralar.

-C
Sütunlar halinde listeleme yapar.

--color[=KOŞUL]
Dosya türlerini ayırdetmek için renklendirme yapılıp yapılmayacağı belirtilir. KOŞUL olarak, `never' (asla),
`always' (daima) veya `auto' verilebilir.

-d
--directory

-l
seçeneği ile birlikte sadece dizine ilişkin bilgileri gösterir.


-D
--dired
Emacs'ın `dired' kipi için tasarlanmış çıktı üretir.

-f
Sıralama yapmaz, -aU etkinleştirilir, -lst edilginleştirilir.

-F
--classify

Liste girdilerine */=@| göstergelerinden birini ekler.

--format=SÖZCÜK
SÖZCÜK olarak verilebilecek değerler ve karşılığı olan seçenekler: across -x, commas -m, horizontal -x, long
-l, single-column -1, verbose -l, vertical -C
--full-time
-l --time-style=full-iso seçeneklerine eşdeğerdir.

-g
Dosya sahibini göstermemesi dışında -l gibidir.

-G
--no-group
Grup sütununu göstermez.

-h
--human-readable
Boyutları kullanıcı tarafından kolay okunabilecek biçimde (1K 234M 2G gibi) gösterir.
-si
Yukarıdaki seçeneğe benzer ama 1024 yerine 1000'lik katlar kullanılır (1 MB=1000KB kabul edilir, 1024 değil).

-H
--dereference-command-line
Komut satırındaki sembolik bağlar takip edilir.
--indicator-style=SÖZCÜK
Listedeki girdilere SÖZCÜK ile belirtilen tarzda gösterge ekler: none (öntanımlı değer), classify (-F),
file-type (-p)

-i
--inode
Her dosyanın indis numarasını basar.

-I
--ignore=ŞABLON
ŞABLON ile eşleşen girdileri listelemez.

-k
--block-size=1K ile aynıdır.


-l
Uzun liste biçimi kullanılır.

-L
--dereference
Bir sembolik bağın bilgileri gösterilirken, bağın kendisinin değil gösterdiği dosyanın bilgileri gösterilir.

-m
Listeyi virgül ile ayrılmış girdiler halinde gösterir.

-n
--numeric-uid-gid
Kullanıcı ve grup isimleri yerine numaralarını göstermesi dışında -l gibidir.

-N
--literal
Ham dosya isimlerini basar (kontrol karakterleri özel olarak değerlendirilmez).

-o
Grup sütununu göstermemesi dışında -l gibidir.

-p
--file-type
Liste girdilerine /=@| göstergelerinden birini ekler.

-q
--hide-control-chars
Basılamayan kontrol karakterlerini ? ile gösterir.
--show-control-chars
Basılamayan konrol karakterlerini oldukları gibi gösterir (uygulama ls ve çıktılama birimi uçbirim olmadıkça
öntanımlıdır).

-Q
--quote-name
Girdi isimlerini tırnak içine alır.
--quoting-style=SÖZCÜK
Girdi isimleri tırnak içine alınırken SÖZCÜK ile belirtilen tarz kullanılır: literal, locale, shell,
shell-always, c, escape

-r
--reverse
Ters sıralama yapar.

-R
--recursive
Altdizinleri ardışık olarak listeler.

-s
--size
Dosya boyutlarını blok cinsinden gösterir.

-S
Dosya boyutuna göre sıralama yapar.
--sort=SÖZCÜK
SÖZCÜK ile belirtilen türde sıralama yapılır: extension (uzantısına göre -X), none (yok -U), size (boyuta göre
-S), time (zamana göre -t), version (sürüme göre -v), status (duruma göre -c), atime veya access ya da use (erişim
zamanına göre -u).
--time=SÖZCÜK
Zaman bilgisi gösterilirken değişiklik zamanı yerine SÖZCÜK ile belirtilen zaman kullanılır. Erişim zamanı
için: atime, access, use. Oluşturulma zamanı için: ctime. Duruma göre: status. Sıralama türü --sort=time olarak
belirtildiğinde sıralama burada belirtilen zamana göre yapılır.

-t
Değişiklik zamanına göre sıralama yapılır.

-T
--tabsize=SAYI
Sekme durakları için 8 yerine, SAYI kullanılır.

-u
-lt ile birlikte erişim zamanına göre ile sıralar ve bu zamanı gösterir. -l ile birlikte kullanıldığında ise
isme göre sıralar ve erişim zamanını gösterir. Aksi takdirde, erişim zamanına göre sıralar.

-U
Sıralama yapılmaz; girdiler dizindeki sırasına göre listelenir.

-v
Sıralama sürüme göre yapılır.

-w
--width=SAYI
Ekran genişliği SAYI karakterlik kabul edilir.

-x
Listeleme sütunlar halinde değil satıra dizilerek yapılır.

-X
Alfabetik sıralama dosya uzantısına göre yapılır.
-1
Listeleme her satıra bir dosya yazılarak yapılır.
--help
Bu yardım iletisini gösterir ve çıkar.
--version
Sürüm bilgilerini gösterir ve çıkar.
BOYUT şu dizge ya da eşdeğeri olan tamsayılardan biri ile belirtilebilir: kB 1000, K 1024, MB 1,000,000, M
1,048,576 ve benzer şekilde G, T, P, E, Z, Y.
Öntanımlı olarak, dosyaların türlerini ayırdetmek için renkler kullanılmaz. Bu, --color=none kullanımına
eşdeğerdir. --color seçeneğinin argümansız kullanımı --color=always anlamına gelir. Renkli kodlama sadece --color=au$
ile ve standart çıktı bir uçbirime (tty) bağlı ise yapılır.



İLGİLİ BELGELER

ls komutu ile ilgili kapsamlı bir kılavuz Texinfo olarak mevcuttur. Şayet info ve ls yazılımları düzgün bir
şekilde sisteminizde kuruluysa, aşağıdaki komut ile bu kılavuzu görüntüleyebilirsiniz.
info ls

İNGİLİZCE ÇEVİRİ

ls --helpi veya ls --ihelp şeklinde girmeniz yeterli olacaktır.


\n";
}
if(($k eq '--ihelp') || ($k eq '--helpi'))
{
print"
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuSUX nor --sort.

-a, --all do not hide entries starting with .
-A, --almost-all do not list implied . and ..
-b, --escape print octal escapes for nongraphic characters
--block-size=SIZE use SIZE-byte blocks
-B, --ignore-backups do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last
modification of file status information)
with -l: show ctime and sort by name
otherwise: sort by ctime
-C list entries by columns
--color[=WHEN] control whether color is used to distinguish file
types. WHEN may be `never', `always', or `auto'
-d, --directory list directory entries instead of contents
-D, --dired generate output designed for Emacs' dired mode
-f do not sort, enable -aU, disable -lst
-F, --classify append indicator (one of */=@|) to entries
--format=WORD across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time list both full date and full time
-g (ignored)
-G, --no-group inhibit display of group information
-h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)
--si likewise, but use powers of 1000 not 1024
-H same as `--si' for now; soon to change
to conform to POSIX
--indicator-style=WORD append indicator with style WORD to entry names:
none (default), classify (-F), file-type (-p)
-i, --inode print index number of each file
-I, --ignore=PATTERN do not list implied entries matching shell PATTERN
-k, --kilobytes like --block-size=1024
-l use a long listing format
-L, --dereference list entries pointed to by symbolic links
-m fill width with a comma separated list of entries
-n, --numeric-uid-gid list numeric UIDs and GIDs instead of names
-N, --literal print raw entry names (don't treat e.g. control

characters specially)
-o use long listing format without group info
-p, --file-type append indicator (one of /=@|) to entries
-q, --hide-control-chars print ? instead of non graphic characters
--show-control-chars show non graphic characters as-is (default
unless program is `ls' and output is a terminal)
-Q, --quote-name enclose entry names in double quotes
--quoting-style=WORD use quoting style WORD for entry names:
literal, locale, shell, shell-always, c, escape
-r, --reverse reverse order while sorting
-R, --recursive list subdirectories recursively
-s, --size print size of each file, in blocks
-S sort by file size
--sort=WORD extension -X, none -U, size -S, time -t,
version -v
status -c, time -t, atime -u, access -u, use -u
--time=WORD show time as WORD instead of modification time:
atime, access, use, ctime or status; use
specified time as sort key if --sort=time
-t sort by modification time
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
-u with -lt: sort by, and show, access time
with -l: show access time and sort by name
otherwise: sort by access time
-U do not sort; list entries in directory order
-v sort by version
-w, --width=COLS assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-1 list one file per line
--help display this help and exit
--version output version information and exit

By default, color is not used to distinguish types of files. That is
equivalent to using --color=none. Using the --color option without the
optional WHEN argument is equivalent to using --color=always. With
--color=auto, color codes are output only if standard output is connected
to a terminal (tty).

Report bugs to <bug-fileutils@gnu.org>.
TÜKÇE VERSİYONUNA --help KOMUTU İLE ULASABİLİRSİNİZ !

\n";
}


if(($k ne '-l') && ($k ne '--help') && ($k ne '-S') && ($k ne '-a') && ($k ne '-al')&& ($k ne '-la') && ($k ne '-Sl')
&& ($k ne '-lS') && ($k ne '--helpi')&& ($k ne '--ihelp')&& ($k ne '-Sa') && ($k ne '-aS')&& ($k ne '-Ss') && ($k ne
'-sS') && ($k ne '-sa') &&($k ne '-as')&&($k ne '-s') )
{

printf("EROR! EROR!\n Yanlış parametre girdiniz\n");
printf("Lütfen parametrenizi konrol ederek tekrardan giriniz yada\n --help komutunu kullanarak yardım alınız\n");

}

}

if(scalar(@ARGV)>=2)
{

printf("EROR! EROR!\nFazla parametre girdiniz\n");
printf("Lütfen parametre sayınızı kontrol ederek tekrardan giriniz\n");

}
empedoCles kullanıcısına MSN aracılığı ile mesaj yolla
Alıntı Yaparak Cevapla
Cevap

Konu Araçları
Görünüm Modları



Saat 07:17 AM.


Copyright ©2005 - 2008 Arkasokak.Net
Tasarım: NoDRaC
Bize Ulaşın - Gizlilik İlkesi - En Üst
Powered by vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0