************************** Systemy Operacyjne (2) Laboratorium nr 2 : FIND ************************** Zadania z rozwizaniami

Podobne dokumenty
#!/bin/sh. if [ "$#"!= "1" ]; then echo "Skrypt uruchamiany z parametrem (sciezka do katalogu)" exit 1 fi

1. Wyrażenia regularne. Symbole w wyrażeniach regularnych 1 :

Linux: System Plików

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Przekierowanie wejścia wyjścia:

Elementy wyrażeń regularnych

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

- wszystkie elementy - wszystkie elementy

System operacyjny Linux

System operacyjny Linux

Znaki globalne w Linuxie

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

Środowisko programisty

Instrukcja SO powłoka BASH i skrypty powłoki Istotne jest zrozumienie działania narzędzia history powłoki BASH. Każde polecenie wprowadzone i

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Linux Polecenia. Problem nadpisywania plików. Zmienna noclobber i noglob. Filtry i metaznaki. Problem nadpisywania plików. Opracował: Andrzej Nowak

1 Przygotował: mgr inż. Maciej Lasota

S P I S POLECEŃ LINUXA

Programowanie skryptów powłoki

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Instalacja programu Sprzeda z motorem. bazy danych Pervasive V8

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Szkolenie AGH Linux. Nie bój się konsoli i zdaj kolosa na 5.0!!! Tytuł wcale nie przesadzony ;)

Trochę o plikach wsadowych (Windows)

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Struktura katalogów. Prawa dostępu

SYSTEMY OPERACYJNE. skrypty BASH - zadania wprowadzające:

Powłoka (shell) Powłoka ksh

Jądro Powłoka System plików Programy użytkowe

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver Aplikacja WWW ver. 2.1 Instrukcja Obsługi

Sieci komputerowe. Wstęp do systemu Linux/UNIX, część II. Ewa Burnecka / Janusz Szwabiński. /

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Instalacja programu Sprzeda

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Technologie Informacyjne - Linux 3

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Przypomnienie komend linux'a.

Wstęp do informatyki Shell podstawy

ANALIZA DANYCH W STATA 8.0 CZĘŚĆ II

Pracownia Komputerowa wyk ad II

Tworzenie skryptu: Skrypty powłoki

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Systemy operacyjne. Laboratorium 8. Perl find

Języki skryptowe w programie Plans

Filtry, metaznaki, cytowania. Proste skrypty. Polecenia find, tee, mail.

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Opera Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Opera wersja 1.1 UNIZETO TECHNOLOGIES SA

Metody numeryczne Laboratorium 2

Pracownia Komputerowa wykład II

Polecenia wewnętrzne:

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Systemy operacyjne. Laboratorium 3. Find. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Modele. Najcz. Metoda unicode definiuje sposób wyświetlania obiektu w postaci tekstowej. BooleanField - pole logiczne, True/False

Powłoka bash. Kurs systemu Unix 1

lekcja 8a Gry komputerowe MasterMind

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle

Bash - instrukcje warunkowe, pętle i funkcje

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Pobieranie argumentów wiersza polecenia

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Instrukcja do programu BASIC PR-02

host name: protokół SSH System plików - wprowadzenie Ścieżki dostępu

Kompilator języka Basic można bezpłatnie pobrać ze strony z zakładki DOWNLOAD.

Strona1. Linux. Skrypty powłoki

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Aplikacje internetowe - laboratorium

Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego.

BASH - WPROWADZENIE Bioinformatyka 4

4.2 Sposób korzystania z l acza

Zastosowanie filtrów w Linuksie

Systemy Operacyjne. Część II Zarządzanie/Administracja Systemem. 5: Skrypty. autor: mgr inż. Andrzej Woźniak

Podstawy używania konsoli tekstowej w systemie Linux. Andrzej Zbrzezny

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

%$-,./+,-.0! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

Systemy Operacyjne I: System plików

Ćwiczenie nr 14: System Linux

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

NAZWA SKLADNIA OPIS WYRAŻENIA OPCJE. find - szuka plików w hierarchii katalogowej. find [ścieżka...] [wyrażenie]

J ezyk AWK Kurs systemu UNIX

TEMAT : System operacyjny MS DOS pliki wsadowe

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

PSK. Jak przygotować maszynę wirtualną? 1. Utworzenie maszyny wirtualnej

Technologie Informacyjne - Linux 2

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

Laboratorium - Poznawanie FTP

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych,

Wiersz poleceń Windows

Transkrypt:

************************** Systemy Operacyjne (2) Laboratorium nr 2 : FIND ************************** Zadania z rozwizaniami ===Part1 by Scoreo======================================================= 1. W zadanym drzewie katalogów usun puste podkatalogi a take podkatalogi, które stały si puste po wczeniej usunitych podkatalogach. #autor: Karol Skorek echo "###Start" # Testowanie poprawnosci argumentow echo "Podano zla liczbe parametrow" echo "Jako parametr nalezy podac katalog" #------------------------------------------------------ erase=1 while [ $erase!= 0 ] erase=0 erase=` nd $1 -type d -empty (while read zmienna rmdir $zmienna erase=1 echo $erase )` #------------------------------------------------------ echo "###End" #autor: ammon if [ $# -ne 1 ]; echo "Podaj 1 parametr - katalog" ; echo "Katalog jest nieprawidłowy" nd $1 -type d -empty -exec \ rmdir -p --ignore-fail-on-non-empty '{}' ';' &> /dev/null

#autor: Andrzej Kaczmarek nd $1 -depth -type d -empty -exec rmdir {} \; 2> /dev/null 2. W obrbie dwóch drzew katalogów znajd pliki o identycznej zawartoci (ale nie koniecznie o identycznych nazwach i połoeniach korzeni drzew) wystpujcych w obu drzewach. Podaj ciek tylko drugiego i pierwszego drzewa. Aby nie porównywa wszystkich plików ze sob jako wstpne kryterium przyjmuje si taka sama ilo plików. Brak. 3. W zadanych dwóch drzewach katalogów znale pliki regularne je rónice, tzn. takie pliki które wystpuj w pierwszym drzewie a nie w drugim i vice versa oraz takie które wystpuj w pierwszym i drugim ale maja inna zawarto. Listowanie wyróni w tych trzech katalogach. #!/bin/sh #autor: Borys Pogoreło if [ $#!= 2 ]; echo "Uycie: $0 <katalog_1> <katalog_2>" exit -1 [! -d $2 ]; echo "Oba parametry musz by katalogami!" exit -1 X=`nd $1 $2 -type f -printf "%P\n" sort uniq -u` echo "*** Pliki z katalogu $1, których nie ma w katalogu $2:" for a in $X; if [ -f "$1/$a" ]; echo $a; ; echo echo "*** Pliki z katalogu $2, których nie ma w katalogu $1:" for a in $X; if [ -f "$2/$a" ]; echo $a; ; X=`nd $1 $2 -type f -printf "%P\n" sort uniq -d` echo echo "*** Pliki zarówno w katalogu $1 i $2, ale o rónej zawartoci:" for a in $X; cmp -s "$1/$a" "$2/$a" if [ $?!= 0 ]; echo $a;

===Part2 by Marek Furtak================================================= 4. Pogrupowa pliki w danym drzewie katalogów według wielkoci na małe (np. 5kB), rednie (1MB) i due (powyej 1MB). Wywietli łczna liczb plików w grupie oraz ich sumaryczn objto. #autor: Jacka if [! $# -eq 1 ] echo "Zla ilosc parametrow" echo "$1 nie jest katalogiem" #le<5k for i in $( nd $1 -type f -size -5k -printf %s\\n); ((rozm+=$i)) ((liczm++)) echo "Liczba plikow malych: $liczm, w sumie zajmuja $rozm bajtow" #5k<le<1024k for i in $( nd $1 -type f -size +5k -size -1024k -printf %k\\n); ((rozs+=$i)) ((liczs++)) echo "Liczba plikow srednich: $liczs, w sumie zajmuja $rozs kilobajtow" #le>1024k for i in $( nd $1 -type f -size +1024k -printf %k\\n); ((rozd+=$i)) ((liczd++)) echo "Liczba plikow duzych: $liczd, w sumie zajmuja $rozd kilobajtow" 5. Znale wszystkie pliki nalece danego uytkownika policzy je i zsumowa rozmiar. #autor: Jacka if [ $#!= 2 ] echo "Zla ilosc parametrow, 1 - katalog, 2 - uzytkownik" echo "Nieprawidlowy katalog" for i in $( nd $1 -type f -user $2 -printf %k\\n );

((roz+=$i)) ((ilosc++)) echo "Do uzytkownika $2 nalezy $ilosc plikow i razem maja $roz kilobajtow" 6. Znale wszystkie pliki danego uytkownika wiksze ni zadana objto (parametr, np. 1 MB, 500 kilo itp.) i spakowa je, aby zajmowały mniej miejsca. #autor: Jackal if [ $#!= 3 ] echo "Zla ilosc parametrow, 1 - katalog 2 - uzytkownik, 3 - objetosc pliku" echo "Nieprawidlowy katalog" nd $1 -type f -user $2 -size +$3k -print0 cpio --create --null -- format=crc --le=$1.cp ===Part3 by Andrzej Kaczmarek============================================ 7. Poda wszystkie twarde wiazania danego pliku. #autor: Jackal echo "Zla ilosc parametrow" if [! -f $1 ] echo "Nieprawidlowy plik" (( i = $( nd $1 -printf %i\\n ) )) nd $1 -inum $i #autor: A. Kaczamrek nd / -inum $(stat -c %i $1) 2> /dev/null (tu drobne załoenie: mamy tylko jeden lesystem, ale jest to załoenie słuszne i akceptowane przez dr Maciejewskiego ;)

===Part4 by Zetor======================================================== 8. Zmieni rozszerzenia wszystkich plików regularnych o ustawionym prawie wykonywania przez wszystkich, które maja zadane w drugim parametrze rozszerzenie na taka sama nazw ale o rozszerzeniu podanym w trzecim parametrze. #autor: swr nd $1 -type f -perm +001 -name "*.$2" awk -F "." 'NF>1{NF--; OFS="."; print; }' while read plik mv "$plik.$2" "$plik.$3" 9. Wylistuj (w porzdku liczby wystpie) nazwy wszystkich plików regularnych w zadanym drzewie katalogów. We pod uwag jedynie pliki regularne o wielkoci wikszej od 0. #autor: bamboosz echo "Start" echo "====================================" echo "==============pliki:================" # Testowanie poprawnosci argumentow echo "Podano zla liczbe parametrow" echo "Jako parametr nalezy podac katalog" nd $1! -empty -type f -printf %f\\n sort uniq -c echo "====================================" echo "End" #!/bin/sh #autor: Borys Pogoreło ; echo "Nie podano katalogu!" exit -1 ; echo "Podany parametr nie jest katalogiem!" exit -1 nd $1 -type f -size +0 -printf "%f\n" sort uniq -c sort -nr cut - c 9-

#autor: Staszek echo "Poprawne uruchomienie $0 [katalog]"; ; el echo "Podany katalog nie istnieje"; ; nd $1 -type f! -empty sort uniq -c 10. Wylistowa w zadanym drzewie katalogu 3 najwiksze i 3 najmniejsze pliki regularne. #!/bin/sh #autor: Staszek echo "Poprawne uzycie $0 [katalog]" ; el echo "Podany katalog nie istnieje"; ; echo "========== 3 najwieksze pliki w katalogu $1 ==================" licznik=1; nd $1 -type f ls -S while read plik echo "$licznik. $plik"; (( licznik=$licznik+1 )); if [ $licznik == 4 ] break; echo "========== 3 najmniejsze pliki w katalogu $1 =================" licznik=1 nd $1 -type f ls -Sr while read plik echo "$licznik. $plik"; (( licznik=$licznik+1 )); if [ $licznik == 4 ] break;

11. Znale pliki regularne tekstowe o wielkoci >5kB. Plik tekstowy to taki, którego pierwszy wiersz zawiera nie wicej ni 120 znaków. #autor: bamboosz echo "Start" echo "====================================" echo "========pliki teskstowe to:=========" # Testowanie poprawnosci argumentow echo "Podano zla liczbe parametrow" echo "Jako parametr nalezy podac katalog" for i in $( nd $1 -type f -size -5k ); declare -i val (( val = $(head --lines=1 $i wc -c) )) if [ $val -le 120 ]; echo $i :: $val echo "====================================" echo "End" #autor: Staszek echo "Poprawne uzycie $0 [katalog]" ; el echo "Podany katalog nie istnieje!"; ; nd $1 -type f -size +1 while read plik if [ `head --lines=1 $plik wc -c` -le 120 ] echo $plik;

12. W zadanym drzewie katalogu znale pliki o wielkoci >1kB i <20kB (>1b i <500b) posiadajce pojedynczy znak. w nazwie (tzn. z jednym rozszerzeniem). #autor: Staszek echo "Poprawne uzycie $0 [katalog]"; ; el echo "Podany parametr nie jest katalogiem"; ; nd $1 -type f -size +1c -size -500c -name '*.*'! -name '*.*.*' #!/bin/sh #autor: Robert Porba if [ $# -ne 1 ] echo "$0 syntax: $0 directory_name" echo "$1 invalid directory name" nd $1 -type f -size +2 -size -40 -regex '[^.]*\.[^.]*' exit 0 #To zadanie nie koca działa tak jak powinno, ale dr Caban zaliczył je z małym zastrzeeniem. Trzeba troszk zmieni wyraenie regularne. 13.Dla zadanych 2 katalogów wylistuj katalogi o takich samych nazwach i ciekach wzgldnych w ramach drzew. Nie listowa katalogów pustych choby z jednego z drzew. brak

14. W zadanym drzewie katalogów ponumeruj wszystkie pliki regularne (przez danie na kocu datkowego rozszerzenia z numerem) według ich wielkoci od najmniejszego (.1) najwikszego. Numeruj tylko pliki regularne z nieustawionymi bitami wykonania. Pliki o identycznej wielkoci mona numerowa w wolnej kolejnoci. #autor: Staszek echo "Poprawne uzycie $0 [ katalog ]"; ; el echo "Podany katalog nie istnieje"; ; i=0; nd $1 -type f ls -S while read plik echo $plik.$i; # # mv $plik $plik.$i; # (( i=$i+1 )); #!/bin/sh #autor: Robert Porba if [ $# -ne 1 ] echo "$0 syntax: $0 directory_name" echo "$1 invalid directory name" licznik=1 nd $1 -type f! -perm -111 -printf "%s\t%p\n" sort -n cut -f 2 \ while read le mv $le ${le}.$licznik licznik=`expr $licznik + 1` exit 0

===Part5 by Chemical===================================================== 15. W zadanym drzewie katalogów znajd pliki regularne i katalogi o takich samych nazwach takie, e w jednym miejscu jest to plik regularny a w innym katalog. Listuj w postaci: nazwa pliku bez cieki, w nastpnych liniach cieki wzgldem zadanego pocztku drzewa najpierw katalogów o tej nazwie a potem plików regularnych. Nie listuj plików i katalogów o nazwach unikalnych lub takich, e nazwa tyczy tylko plików regularnych lub tylko katalogów. brak =========================================================================== Wielkie dziki dla wszystkich chłopaków za zanotowanie treci zada i ich rozwizanie :) =========================================================================== http://hcg.prv.pl http://hcg.blo.pl