Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hej, mam katalog w którym jest od groma i ciut ciut plików, ak że jakakolwiek komenda z parametrem *.json nie działa (ls, dir itp). Potrzebuje te wszystkie pliki obrobić pewnym skryptem i usunąc. O ile potrafię je odnaleśc findem, wywołąc dla nik jedną komendę:
find results/ -name '*.json' -type f -exec rm {} \;
albo wywołać dwie komendy:
find results/ -name '*.json' -type f -exec json2sql {} && rm {} \;
to przekeierowanie wyjścia tej pierwszej do innej komendy i dodanie drugiej:
find results/ -name '*.json' -type f -exec json2sql {} | mysql -u user -ppass db && rm {} \;
skutkuje:
mysql: [Warning] Using a password on the command line interface can be insecure. bash: /usr/bin/find: Lista argumentów za długa rm: nie można usunąć '{}': Nie ma takiego pliku ani katalogu rm: nie można usunąć ';': Nie ma takiego pliku ani katalogu
Co robię nie tak?
Offline
Ten pipe '|' kończy komendę finda i kieruje całe wyjście stdout z niego jako wejście do kolejnej komendy czyli mysql, który już działa poza findem, tak samo jak rm. Żeby to zadziałało, należało by użyć jednego z obejść np. stąd:
https://stackoverflow.com/questions/307015/how-do-i … -exec-command
albo prościej naskrobać skrypt:
#!/bin/bash json2sql "$1" | mysql -u user -ppass db && rm "$1"
i w execu finda odpalać po prostu jego:
find results/ -name '*.json' -type f -exec ścieżka_do_skryptu/skrypt {} \;
Ostatnio edytowany przez seler (2020-12-06 21:49:03)
Offline
# Alternatywa^
find results/ -name '*.json' -type f -exec bash -c 'json2sql "$1" | mysql -u user -ppass db && rm $1' -- {} \;
Offline
@samu:
-ppass
?? Chyba
-p
jeśli już...........
Offline
developer napisał(-a):
@samu:
Kod:
-ppass?? Chyba
Kod:
-pjeśli już...........
Jeśli już to czytamy dokumentację ze zrozumieniem
man mysql
a nie siejemy dezinformację...........
-p, --password[=name] Password to use when connecting to server. If you use the short option form (-p), you cannot have a space between the option and the password. If you omit the password value following the --password or -p option on the command line, mysql prompts for one. Specifying a password on the command line should be considered insecure. You can use an option file to avoid giving the password on the command line.
Offline
urbinek napisał(-a):
developer napisał(-a):
@samu:
Kod:
-ppass?? Chyba
Kod:
-pjeśli już...........
Jeśli już to czytamy dokumentację ze zrozumieniem
Kod:
man mysqla nie siejemy dezinformację...........
Kod:
-p, --password[=name] Password to use when connecting to server. If you use the short option form (-p), you cannot have a space between the option and the password. If you omit the password value following the --password or -p option on the command line, mysql prompts for one. Specifying a password on the command line should be considered insecure. You can use an option file to avoid giving the password on the command line.
Offline
@urbinek ::
wg. dokumentacji ( którą zacytowałeś ) nie ma parametru
-ppass
( jakto napisał autor ) tylko albo
-p
albo
--password
Także @urbinek: jeśli kogoś pouczasz to upewnij się że masz rację.
Ostatnio edytowany przez developer (2020-12-07 16:11:57)
Offline
developer napisał(-a):
@urbinek ::
wg. dokumentacji ( którą zacytowałeś ) nie ma parametruKod:
-ppass( jakto napisał autor ) tylko albo
Kod:
-palbo
Kod:
--passwordTakże @urbinek: jeśli kogoś pouczasz to upewnij się że masz rację.
słodki jeżu i borze z lasu....
której części
If you use the short option form (-p), you cannot have a space between
nie zrozumiałeś?
mysql [options] db_name
mysql - nazwa programu -u - parametr odpowiedzialny za nazwę użytkownika user - nazwa użytkownika -p - parametr odpowiedzialny za nazwę hasło użytkownika pass - hasło użuytkownika db - nazwa bazy danych
tak jak pisałem, dokumentację trzeba czytać ze zrozumieniem
Ostatnio edytowany przez urbinek (2020-12-07 19:33:10)
Offline
@morfik: przyznaje się masz rację. Mój błąd przepraszam.
Offline
urbinek napisał(-a):
developer napisał(-a):
@morfik: przyznaje się masz rację. Mój błąd przepraszam.
Dzięki, ze mnie z nim pomyliłeś ;)
O kurde. To dlatego że akurat przeglądałem jego skriny..........
Offline