Wstęp

Dzień dobry, dziś przedstawię jak operować na liście plików. Serdecznie zapraszam.

Listowanie plików

Listować pliki możemy na kilka sposobów np. przy pomocy komendy dedykowanej komendy ls lub komendy echo z dodaniem globbingu. Bardziej szczegółowy opis można będzie znaleźć w artykułach “Globbing”(w trakcie przygotowania) oraz “Listowanie plików”(w trakcie przygotowania). Informacje o typach plików i przykłady listingu można znaleźć w Filozofia “Wszystko jest plikiem”

Krótko przedstawię kilka opcji na listing:

ls      # domyślnie wyświetla tylko nazwy nie ukrytych plików
ls -a   # wyświetla nazwy wszystkich plików w tym ukrytych
ls -l   # wyświetla jawne pliki w postaci długiej ( ze szczegółami)
ls -al  # wyświetla jawne i niejawne pliki w postaci długiej
ls -F   # wyświetla jawne pliki z suffixem (znakiem na końcu) oznaczającym typ
echo *  # wyświetla nazwy jawnych plików

Screenshot from 2021-10-11 13-20-04.png

Lecimy w kółko

Naszym dzisiejszym celem jest praca z plikami. Do tego celu wykorzystamy pętle for

Skoro już wiemy jak działa pętla for Skrypty powłoki Bash #11 - bieganie w kółko to przejdźmy do jej wykorzystania.

Zanim jednak zacznę mówić o operacji na liście plików, chcę wspomnieć o możliwości jej uzyskiwania. Przedstawię dziś dwie:

  1. Podstawienie komendy ls → for plik in $(ls)
  2. Użycie globbingu → for plik in *

Ja będę głównie korzystał z drugiego sposobu, z tego powodu, że jest od domyślnie bezpieczniejszy. Natomiast nic nie stoi na przeszkodzie, by używać komendy ls w swoim “laboratorium”

Dzisiejszym naszym kodem będzie zwykły listing plików.

Naszym celem jest wyświetlić napis w następującej postaci: “PLIK ⇒ nazwa”

Do tego celu wykorzystamy następujący kod:

Dla plików jawnych

for plik in *; do
	echo "PLIK => ${plik}"
done

### wersja 2 ###

for plik in $(ls); do
	echo "PLIK => ${plik}"
done

Screenshot from 2021-10-11 13-51-55.png

Dla plików niejawnych

for plik in .*; do
	echo "PLIK => ${plik}"
done

### wersja 2 ###

for plik in $(ls -a | grep "^\."); do
	echo "PLIK => ${plik}"
done

Screenshot from 2021-10-11 14-07-20.png

Dla plików jawnych i nie jawnych

for plik in * .*; do
	echo "PLIK => ${plik}"
done

### wersja 2 ###

for plik in $(ls -a); do
	echo "PLIK => ${plik}"
done

Screenshot from 2021-10-11 14-08-50.png

Epilog

Na dziś to tyle.

Mam nadzieję, że dowiedziałeś/łaś się czegoś nowego, albo odświeżyłeś/łaś sobie wiedzę. Tak czy inaczej, serdecznie Ci dziękuję, za przeczytanie tego posta. Jeśli masz potrzebę o cos zapytać, kontakt znajdziesz w zakładce “O Mnie”. A teraz życzę miłego dzionka i smacznej kawusi :) Do widzenia.