|
#1
| ||||
| ||||
| 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"); } |