24 Haziran 2020 Çarşamba

ls komutu

Giriş
list directory contents anlamına gelir. Seçeneksiz çalıştırırsa sadece dosya isimlerini gösterir. Şöyle yaparız.
$ ls
Applications Documents    Library      Music        Public
Desktop      Downloads    Movies       Pictures
- Eğer çıktıda "+" karakteri görüyorsak ACL atanmıştır. getfacl komutu yazısına bakabilirsiniz.

- Eğer çıktıda "t" veya "T"  karakteri görüyorsak, sticky bit atanmıştır. chmod ve sticky bit yazısına bakabilirsiniz. Bu dizinde herkes dosya oluşturabilir ancak sadece dizinin sahibi silebilir

- Eğer çıktıda "s" veya "S"  karakteri görüyorsak, SUID bit'i atanmıştır. chdmod ve suid biti yazısına bakabilirsiniz. root kullanıcı olmasak bile, dosyanın sahibi root ise, root kullanıcı gibi çalışabilmeyi sağlar.

Exit Code
Eğer belirtilen dosya varsa ls exit code olarak 0 verir.
Örnek
Bir dizinde belli bir isimdeki dosya varsa o dizinin ismini yazdırmak isteyelim. Şöyle yaparız. ls dosya varsa exit code olarak 0 vereceği için || tarafı da çalıştırılır.
while read line; do
    ls "$line/path2/file2" &> /dev/null || ls "path1/$line/path2"
done < /path_to_this_file/file.txt
Soru İşareti Karakteri Çıktısı
Non printable karakter varsa, bu karakter yerine ? karakteri gösterilir. Açıklaması şöyle.
The ls utility will replace non printable characters with ?. It is further unclear whether the non printable character really is the first character in the filename or whether there may be one or several spaces before that.
Glob Kullanmak
Örnek
*:2* örüntüsünü aramak istersek şöyle yaparız. ":" karakterini "\" karakteri ile escape ederiz.
ls -l *\:2,*T
-- seçeneği
Açıklaması şöyle
You can usually use -- to indicate the end of command options
Örnek
Dosya i-smleri - karakteri ile başlıyorsa şöyle yaparız.
ls -- -*
-1 seçeneği - Eksi bir
Eksi küçük L değildir. Eksi bir karakteridir. Her dosya ismini bir satıra yazar, başka bilgi eklemez.
Açıklaması şöyle
 -1      (The numeric digit "one".) Force output to be one entry per line.
         This is the default when output is not to a terminal.
Açıklaması şöyle
ls -1 lists one file per line. By default, when it’s outputting to a terminal, ls lists files in columns, whose number varies depending on the length of the file names and the available space on screen.
Örnek
Şöyle yaparız.
$ ls -1 -- *.tar.gz
file1.tar.gz
file2.tar.gz
file?3.tar.gz
-a seçeneği
Gizli dosyaları gösterir.

-d seçeneği
Sadece diizinleri gösterir.
Örnek
Şöyle yaparız.
$ ls -d */
archive/  DownloadImages/  fixed/  getNews/  html/  log/  MonumentData/  NewsData/
Örnek
En son yaratılan dizine gitmek için şöyle yaparız. Sadece dizinleri listeler. En sonuncu dizin bir değişkene alınır.
alias res='var=$(ls --directory /path/to/results/res* | tail -n 1); cd $var'
--color seçeneği
Örnek
ls komutunun çıktısı renkli değildir. Alias eklemek için şöyle yaparız.
## Colorize the ls output ##
alias ls='ls --color=auto'

## Use a long listing format ##
alias ll='ls -la'

## Show hidden files ##
alias l.='ls -d .* --color=auto'
Örnek
Şöyle yaparız.
/bin/ls --color > file1
Şöyle yaparız.
/bin/ls --color=auto
--group-directories-first seçeneği
Şöyle yaparız.
$ ls -b --group-directories-first | awk '{print NR ". " $0}'
1. dir1
2. dir2
3. dir3
4. z-dir1
5. z-dir2
6. z-dir3
7. file1
8. file2
9. file3
10. file4
11. file5
12. file6
13. file7
14. file\nnewline

-h seçeneği
Büyüklükleri human readable olarak gösterir

-i seçeneği
inode değerlerini gösterir.
Örnek
Şöyle yaparız.
ls -li 

 12582925 -rw-r--r--  1 root root   646 May 23 02:19 ?ssolveIncpUL46pK.txt
Örnek
Farklı dosya sistemleri aynı inode numarasına sahip olabilir. Görmek için şöyle yaparız. / ve /home dosya sistemleri aynı inode numarasına sahip.
$ ls -id / /home
2 /    2 /home
-I seçeneği - Ignore
Örnek
Şöyle yaparız
/bin/ls -1 -I *svn* src/main/resources/ddl
-l seçeneği - Eksi küçük L harfi

Permission bilgileri ile dosyaları gösterir. FAT32 dosya sisteminde permission yeteneği olmamasına rağmen FAT32 sürücüsü varmış gibi davranır.

Örnek
Şöyle yaparız. Dosyanın byte cinsinden büyüklüğü en başa yazılır. Bu dosya 8 byte büyüklüğünde
$ ls -ls test

8 -rw-rw-r-- 1 admin admin 0 feb 27 16:45 test
-N seçeneği
Açıklaması şöyle.
-N, --literal
print entry names without quoting
Örnek
Eğer bı seçeneği kullanmazsa içinde boşluk olan dosyalar tek tırnak içinde gösterilir. Şöyle yaparız
$ ls
 bar  'foo bar'
-t seçeneği
-l seçeneği normalde alfabetik olarak sıralar. -lt olarak kullanılırsa en yeni dosyadan başlayarak sıralar. Açıklaması şöyle.
ls -l will order files in alphabetical order. ls -lt will order files in order of modification time, newest first, to the greatest accuracy supported by the underlying filesystem.



Hiç yorum yok:

Yorum Gönder