Nowe posty

Ostatnie wiadomości

Strony: 1 ... 3 4 [5] 6 7 ... 10
41
Bash, skrypty powłoki / Odp: Bash - skrypt pętla for, if i foldery
« Ostatnia wiadomość wysłana przez marcin'82 dnia 2021-06-24, 22:26:10 »
Tu masz fajne pomysły:
https://www.unix.com/302564602-post3.html?s=5931138e05edac6bc9c5a04612d216ac .

Nie używaj tylko podanej tam opcji --remove-files!

W skrócie - można to wykonać bez tworzenia cudów typu pętla, porównywanie, sr.... ;P

Dane:
tree -a var

var
└── chroot
    ├── ABCD
    ├── ABDC
    ├── ACDB
    ├── BCDA
    ├── DCBA
    ├── nazwa_cos1
    ├── nazwa_cos2
    └── nazwa_cos3

9 directories, 0 files

Polecenie:
find var/chroot/* -maxdepth 1 -type d -not -name 'nazwa_*' -exec tar cvf {}.tar {} \;

Efekt:
find -iname \*.tar
./var/chroot/DCBA.tar
./var/chroot/ABDC.tar
./var/chroot/BCDA.tar
./var/chroot/ACDB.tar
./var/chroot/ABCD.tar

Musisz odpowiednio dopasować warunek wyszukiwania -name LUB -not -name, żeby odfiltrować to czego nie chcesz, a pozostawić to, co ma być spakowane.
42
Karty graficzne / Odp: NVidia brak widoku Menu po przestawieniu na opcję Intel (oszczędną)
« Ostatnia wiadomość wysłana przez Fryc85 dnia 2021-06-24, 12:16:12 »
Niby na razie działa od kilku tygodni,może po jakiejś aktualizacji coś się poprawiło.
43
Bash, skrypty powłoki / Odp: Bash - skrypt pętla for, if i foldery
« Ostatnia wiadomość wysłana przez 1709 dnia 2021-06-24, 00:45:19 »
1. BBCode
[ code ]
jakis kod
[ /code ]

Cytuj
Jeśli zachodzi potrzeba wstawienia do postu kawałka kodu lub cokolwiek, co wymaga stałej szerokości znaków, należy użyć znacznik [ code ][ /code ] (bez spacji). Przykład: [ code ] echo "Oto jakiś kod"; [ /code ]. Żadne znaki formatowania użyte między znacznikami [ code ] i [ /code ] nie będą przetwarzane podczas wyświetlania i zostaną wyświetlone w oryginalnej formie.
https://mozillapl.org/forum/faq.php?mode=bbcode


-------------------------------------------------------------------------------------------------


2. Bash Conditional Expressions
Cytuj
6.4 Bash Conditional Expressions

Conditional expressions are used by the [[ compound command and the test
 and [ builtin commands.


Cytuj
string1 == string2
string1 = string2

    True if the strings are equal. When used with the [[ command, this performs pattern matching as described above (see Conditional Constructs).

    ‘=’ should be used with the test command for POSIX conformance.

https://www.gnu.org/software/bash/manual/html_node/Bash-Conditional-Expressions.html

$ for dir in `find /var/ -mindepth 1 -maxdepth 1 -type d` ; do echo $dir ; if [[ "$dir" = "/var/lo"* ]] ; then echo gooooooool ; break ; fi ; done
/var/crash
/var/games
/var/lib
/var/log
gooooooool

https://stackoverflow.com/questions/669452/is-double-square-brackets-preferable-over-single-square-brackets-in-ba
https://unix.stackexchange.com/questions/306111/what-is-the-difference-between-the-bash-operators-vs-vs-vs

44
Inne / Problem z bootowaniem Linux Mint (RST)
« Ostatnia wiadomość wysłana przez qrcafix dnia 2021-06-23, 20:48:08 »
Witam, zainstalowałem linuksa jako drugi system operacyjny na komputerze z technologią Intel Optane RST. Wymagało to ode mnie zmiany zmiany kontrolera z RST na AHCI w BIOSie.  Jednak kiedy przywróciłem tryb RST, linux nie bootuje się.
Czy da się zrobić coś, żeby być w stanie włączyć linuxa w trybie optane RST?
45
Bash, skrypty powłoki / Odp: Zmienna globalna na wyniku
« Ostatnia wiadomość wysłana przez Paweł Kraszewski dnia 2021-06-23, 17:46:21 »
Bardzo głęboko się zastanów, co robią w skrypcie linijki zaczynające się od $export.
46
Bash, skrypty powłoki / Bash - skrypt pętla for, if i foldery
« Ostatnia wiadomość wysłana przez bercikrk dnia 2021-06-23, 14:41:54 »
Cześć Wszystkim

Mam problem z ogarnięciem porównania nazw folderów i wykonania od[powiednich komend

W moim lunuxie jest folder /var/chroot gdzie mam 300 folderwów 4 znakowych (tylko duże litery) oraz ok 30 z nazwą 2 częściową

ABCD
ABDC
DCBA
BCDA
ACDB
nazwa_cos1
nazwa_cos2
nazwa_cos3

próbóję wykonać taki skrypt

for dir in `find /var/chroot/ -mindepth 1 -maxdepth 1 -type d`

do
       if [ $dir = /var/chroot/nazwa_* ]; then
       continue
        #pomijam ten folder przy operacjach i przechodzę dalej
else

    cd $dir
    zip -r 202101.zip *.csv
    rm -f *202101.csv
fi

 done

skrypt ma znaleźć folder nazwa_cos i pominąć w wykonywaniu operacji, ale dla pozostałych  ma wykonać polecenia. Min takie jak powyżej

problem jest w argumentach if [ $dir = /var/chroot/nazwa_* ]; then nie umie znaleźć to czego chcę i mimo wszystko wykonuje polecenia

Jak pokazać, że dla tych folderów nie ma nic wykonywać a przede wszystkim je znaleźć bo tych dwóch elementów nie umiem opanować w tym skrypcie.

próbowałęm takich ustawień  if [ -d ], wstawić zmienne dir=`find /var/chroot/ -mindepth 1 -maxdepth 1 -type d` i dir1=find /var/chroot/ -mindepth 1 -maxdepth 1 -type d -name "*nazwa_*"

dla większości przypadkó mam info zbyt dużo argumentów

Proszę o instrukcję, wskazówki, pomoc jak to wykonać

Z góry dziękuję
Pozdrawiam
Bercik
47
Bash, skrypty powłoki / Zmienna globalna na wyniku
« Ostatnia wiadomość wysłana przez Myros93 dnia 2021-06-23, 11:17:19 »
Cześć :)
Miło mi Was poznać.
Od jakiegoś czasu walczę z skryptem i nie za bardzo wiem gdzie leży błąd.
Skrypt ma liczyć silnie podanej liczby przez użytkownika.
Wynik musi być zapisany w zmiennej globalnej tak by przy następny uruchomieniu skryptu, użytkownik mógł za pomocą podanej nazwy utworzyć katalog o nazwie "PODANANAZWA+WYNIK_Z_ZMIENNEJ_SILNIA".
echo "Podaj liczbe"
read liczba
$export liczba="$liczba"
silnia=1

while [ $liczba -gt 1 ]
do
  silnia=$((silnia * liczba))
  liczba=$((liczba- 1))
done

echo Silnia dla podanej liczby to: $silnia
$export silnia="$silnia"
Napisałem taki kod, jednak dostaje błąd o treści:
"projekt2.txt: 13: liczba=3: not found
Silnia dla podanej liczby to: 6
projekt2.txt: 23: silnia=6: not found"

Będe wdzięczny za wskazówki!
48
Bash, skrypty powłoki / Odp: Jak poprawić polecenie wyszukujące największe pliki?
« Ostatnia wiadomość wysłana przez 1709 dnia 2021-06-13, 20:00:52 »
find . -type f -exec du -ah {} + | sort -hr | head -n 20
Może być 0,1 sekundy szybsze.
49
Bash, skrypty powłoki / Odp: Jak poprawić polecenie wyszukujące największe pliki?
« Ostatnia wiadomość wysłana przez Ravenik dnia 2021-06-13, 01:48:08 »
Kolejne podejście i tym razem działa dobrze:

find . -type f -print0 | xargs -0 du -m  | sort -n -r -k 1 | cut -f 2  | head -n 20 | while read line; do du -h "$line";  done
50
Bash, skrypty powłoki / Odp: Jak poprawić polecenie wyszukujące największe pliki?
« Ostatnia wiadomość wysłana przez Ravenik dnia 2021-06-13, 00:17:31 »
Inne podejście:
find . -type f -size +100M -exec du -m  {} ';' | sort -n -r -k 1 | head -n 20
Powyższe nie wypluwa błędów, ale muszę się ograniczać do plików powyżej 100MB, bo ta metoda jest z 200 razy wolniejsza niż ta z pierwszego postu - jeśli zapuszcza się ją dla wszystkich plików czyli:
 find . -type f -exec du -m  {} ';' | sort -n -r -k 1 | head -n 20
Jeśli ktoś ma pomysł jak naprawić polecenie z pierwszego postu to prośba o odpowiedź
Strony: 1 ... 3 4 [5] 6 7 ... 10