.
asdf: Jest tutaj ktoś z programowania (początki), basha?
3 lis 23:22
TriviaI: Pytaj. Coś tam wiem.
3 lis 23:26
asdf: katalog nadrzędny to ten wyżej?
3 lis 23:31
TriviaI: tak
3 lis 23:32
asdf: mam takie drzewko:
bash
−−−−b1
−−−−−−−−−>plik: sala1
−−−−−−−−−>plik: sala2
−−−−−−−−−>plik: sala22
−−−−−−−−−>plik: sala220
−−−−−−−−−>plik: sala23
−−−−b2
i z katalogu nadrzędnego skopiowac wszystko z b1 do b2 za pomoca polecenia cp
to będąc w katalogu bash, to będzie takie polecenie?
cp ./b1/sala1 ./b2
3 lis 23:34
asdf: Jeżeli takei coś się wykonuje trzeba pierw nadać uprawnienia tym plikom, czy jeżeli chce się je
otworzyć do dopiero to trzeba robic?
3 lis 23:35
asdf: Już zrobiłem to pierwsze, teraz mam takie coś:
będąc w katalogu b1 usunąć wszystkie pliki z b2
pwd:
bash/b1
polecenie:
rm * ../b2 i nie działa
3 lis 23:39
TriviaI:
Prawdopodobnie będzie to coś w rodzaju:
cp b1/* b2
Jeśli chodzi o uprawnienia to nie wiem. Sprawdź na żywo.

Strzelam że nie trzeba mieć
uprawnień do otwierania, żeby skopiować.
3 lis 23:39
TriviaI:
rm ../b2/*
Możesz te polecenia sprawdzać gdzieś?
3 lis 23:41
asdf: tak, siedzę na linuxie i to sprawdzam.
3 lis 23:42
asdf: tylko mnie jedno zastanawia:
robię tak, usuwam jeden plik z b1 będąc w b2:
pwd:
/bash/b2
polecenie:
rm sala2 ../b1
wyskakuje mi:
rm: nie można usunąć `../b1': Jest katalogiem
A plik usuwa normalnie. Wiem, że do usuwania katalogów jest polecenie rmdir, ale czemu taki
"błąd" wyskakuje, a usuwa się wszystko normalnie?
3 lis 23:44
TriviaI:
rm przyjmuje prawdopodobnie ścieżki do kolejnych zasobów (plików i folderów).
Jako, że ../b1 jest katalogiem to nie usunie go.
Spróbuj dać
rm ../b1
Dalej działa? Jeśli tak to nie mam pojęcia.
3 lis 23:49
asdf: Ale ja nie chcę usunąć katalogu b1 tylko wszystko w nim znajdujące się, robię to tak:
pwd:
bash/b2
polecenie:
rm * ../b1
rm: nie można usunąć ../b1: jest katalogiem
a jak robię:
rm ../b1/* to śmiga
3 lis 23:52
TriviaI:
Polecenie
rm * ../b1
Spróbuje usunąć wszystko (za to odpowiada *) z bieżącego katalogu, a następnie zasób "../b1",
itd...
3 lis 23:54
asdf: Nadaj odpowiednie prawa dostępu plikom w katalogu b2:
− nadaj wszystkim oraz grupie prawa do zapisu i odczytu, a właścicielowi dodatkowe prawo do
wykonania
− usuń wszystkim, grupie oraz właścicielowi prawa do czytania
"nadaj wszystkim" − to znaczy, że pozostałym?
3 lis 23:55
TriviaI: Tak.
3 lis 23:57
asdf: będzie to chmod 755

7 − rwx
5 − r−x
5 − r−x
3 − −wx −−−−− ale skoro wykonywanie to spotyka się taki parametr?
1 − −−x − tu to samo...dziwne
3 lis 23:59
konrad: o miałem to na drugim roku, ale teraz niewiele pamiętam
4 lis 00:02
TriviaI:
Prawo do wykonywania to prawo do uruchomienia czegoś jak programu. Nie możesz tego przeczytać,
zmienić − możesz uruchomić. O szczegóły mnie proszę nie pytać.

3 → −wx → możesz zapisać nowe dane i uruchomić.
1 → −−x → możesz tylko uruchomić.
4 lis 00:03
TriviaI:
a) chmod 766
b) chmod −−jakaś−magiczna−opcja i dalej nie wiem.
4 lis 00:05
asdf: Napisz taki skrypt, który tworzy (w katalogu głównym) katalog o nazwie Tmp, a
następnie
przeniesie wszystkie pliki o trzyliterowych nazwach, zaczynające się na literkę a, znajdujące
się w
katalogu bieżącym do katalogu Tmp. Po zakończeniu tych czynności skrypt powinien wyświetlić
informację tekstową KONIEC.
Zaraz napiszę co potrafię.
4 lis 00:10
asdf: #!/bin/bash
mkdir .../TMP
move a

.../TMP
echo "KONIEC"
to tak ma wyglądać?
4 lis 00:11
asdf: Jak jestem baardzo daleko w drzewie i chcę przejść do katalogu HOME to jakiej komendy użyć?
pwd:
bardzo/daleko/gdzies/w/katalogach/
próbuję:
cd */home
ale nie trybi
4 lis 00:14
TriviaI: cd ~
4 lis 00:15
TriviaI:
Katalog główny to katalog użytkownika? Przyjmijmy, że tak. Wtedy
#!/bin/bash
mkdir ~/Tmp
mv a?? ~/Tmp
echo "Koniec"
4 lis 00:18
asdf: pwd:
bash/b1/
pico skryptzad7
wpisuje:
#!/bin/bash
mkdir ~/TMP
mv
~/a

~/TMP
echo KONIEC
Teraz zadziałało
4 lis 00:29
TriviaI: Powinno być bez tego na czerwono.
4 lis 00:32
TriviaI: W katalogu bash/b1 powinieneś mieć kilka plików typu: aaa, aab, adce, bca, bdcs oraz plik ze
skryptem. Wykonaj go i gotowe.
4 lis 00:33
asdf: ale w poleceniu jest, że z dowlonie wolnego miejsca i ja to rozumiem tak:
jestem w katalogu /bash/b1
to przeniesie wszystkie pliki 3 literowe na litere "a" z katalagu /bash/b1 do ~/TMP
a w poleceniu jest "skrypt moze byc w dowolnym miejscu", a pliki są w katalogu głównym
4 lis 00:33
asdf: a nie, masz racje

To ja źle doczytałem

Ale chyba dobrze zrozumiałem polecenie z ptakiem i
bez ptaka
4 lis 00:34
asdf: Właścicielem plik, np. zolw jest się wtedy, jeżeli w jego katalogu głównym (lub w
podkatalogach) znajduje się plik zolw?
4 lis 00:37
TriviaI: Właścicielem pliku jest się wtedy, gdy ma zapisaną twoją nazwę użytkownika jako właściciel.

Nigdy się nad tym nie zastanawiałem.
4 lis 00:40
asdf:
Napisz skrypt, który plikom z katalogu bieżącego nada prawa dostępu w następujący sposób:
− jeśli nazwa pliku zaczyna się literą a – właściciel i grupa otrzymują prawo do czytania i
pisania,
pozostali użytkownicy tylko prawo do odczytu;
− jeśli nazwa pliku zaczyna się literka b – właściciel otrzymuje pełne prawa, grupa – czytanie
i
wykonanie, a pozostali – tylko odczyt;
− jeśli nazwa rozpoczyna się inna literka niż wymienione powyżej – tylko właściciel otrzymuje
prawa, są to prawa do odczytu i zapisu;
4 lis 00:59
asdf: Napisałem taki skrypt:
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
#!/bin/bash
function nadawanie
{
if[./a*]
then
chmod 664
elseif [./b*]
then
chmod 764
else
chmod 600
fi
}
nadawanie
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
nadałem mu uprawnienia: chmod 770 skrypt8
i wywala mi błąd:
./skrypt8: line 5: błąd składni przy nieoczekiwanym znaczniku `then'
./skrypt8: line 5: `then chmod 664'
4 lis 01:01
asdf: jestes?
4 lis 01:08
asdf: #!/bin/bash
if
[ ~/a* ]
then
chmod 664 a*
elif
[ ~/b* ]
then
chmod 764 b*
else
chmod 600 *
fi
Takie coś zrobiłem, w miare działa, w miare nie działa, już nie wiem czemu. Będziesz mógł to
zajrzyj, ja idę spać. Dobranoc
4 lis 01:40
TriviaI: Wczoraj cicho się ulotniłem.
4 lis 12:22
asdf:
4 lis 12:40
TriviaI:
Najprostszy sposób (ale wolny jeśli mamy dużo plików na a i b) to:
1. Wszystkim plikom nadajemy prawo właściciela do odczytu i zapisu.
2. Plikom na a nadajemy prawo właściciela i grupy do czytania i pisania.
3. Plikom na b nadajemy pełne prawo właściciela, grupy − do czytania i wykonywania, a
pozostałych − do odczytu.
chmod 600 *
chmod 660 a*
chmod 754 b*
4 lis 13:03
asdf: Nie wiem czy Cie dobrze zrozumiałem, ale ja mam to zrobić za pomocą skryptu, jak go odpalę to
samemu nada te prawa. Dzięki za poprawione chmody, gubię się jeszcze w nich
4 lis 13:12
TriviaI:
Skoro ma być skrypt to zapisz te polecenia do pliku.

#!/bin/bash
chmod 600 *
chmod 660 a*
chmod 754 b*
4 lis 13:16
asdf: to nie potrzebnie robiłem to za pomocą IF?
4 lis 13:23
TriviaI: Twój sposób nie zadziała. Żeby użyć if trzeba prawdopodobnie zrobić pętlę po wszystkich
plikach, sprawdzać jak się nazywają i wykonywać odpowiednie polecenia (nie pamiętam jak się to
robi).
4 lis 13:33
TriviaI:
A żeby mój skrypt działał szybciej wystarczy zmienić go na:
#!/bin/bash
chmod 660 a*
chmod 754 b*
chmod 600 [ab]*
Teraz jest już po kolei tak jak w zadaniu. ;) Składnia [...] oznacza "Dowolny znak, który nie
jest jednym z ..."
4 lis 13:35
TriviaI:
A żeby mój skrypt działał szybciej wystarczy zmienić go na:
#!/bin/bash
chmod 660 a*
chmod 754 b*
chmod 600 [^ab]*
Teraz jest już po kolei tak jak w zadaniu.

Składnia [^...] oznacza "Dowolny znak, który nie
jest jednym z ..."
4 lis 13:36
asdf: Dzięki.
Jak odpaliłem tego skrypta to normalnie zmieniał uprawnienia dla plików zaczynających się na a.
Nie sprawdzałem jak to dla plików zaczynających się na b. Dzięki wielkie za pomoc
4 lis 13:39
asdf: Chodzi mi o skrypta ze składnią IF
4 lis 13:41
TriviaI: Metodą prób i błędów udało mi się naklepać takie coś:
http://ideone.com/0vFzLK
Gratisowo wypisuje co się dzieje.
4 lis 14:04
asdf: Dziękuję

Na pewno się przyda do nauki

DZIĘKI DZIĘKI!
4 lis 18:06