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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2020-12-06 21:32:30

  bakao - Zbanowany

bakao
Zbanowany
Zarejestrowany: 2020-11-15

Problem z find

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ę:

Kod:

find results/ -name '*.json' -type f -exec rm {} \;

albo wywołać dwie komendy:

Kod:

find results/ -name '*.json' -type f -exec json2sql {} && rm {} \;

to przekeierowanie wyjścia tej pierwszej do innej komendy i dodanie drugiej:

Kod:

find results/ -name '*.json' -type f -exec json2sql {} | mysql -u user -ppass db && rm {} \;

skutkuje:

Kod:

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

 

#2  2020-12-06 21:48:28

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: Problem z find

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:

Kod:

#!/bin/bash
json2sql "$1" | mysql -u user -ppass db && rm "$1"

i w execu finda odpalać po prostu jego:

Kod:

find results/ -name '*.json' -type f -exec ścieżka_do_skryptu/skrypt {} \;

Ostatnio edytowany przez seler (2020-12-06 21:49:03)


a to feler westchnął seler

Offline

 

#3  2020-12-06 22:29:20

  bakao - Zbanowany

bakao
Zbanowany
Zarejestrowany: 2020-11-15

Re: Problem z find

Działa, dzięki!

Offline

 

#4  2020-12-07 09:25:04

  samu - Stały bywalec

samu
Stały bywalec
Skąd: ~/.linux/dug
Zarejestrowany: 2011-06-15

Re: Problem z find

# Alternatywa^

Kod:

find results/ -name '*.json' -type f -exec bash -c 'json2sql "$1" | mysql -u user -ppass db && rm $1' -- {} \;

https://www.debian.org/logos/button-mini.png

Offline

 

#5  2020-12-07 13:46:35

  developer - Użytkownik

developer
Użytkownik
Zarejestrowany: 2014-03-20

Re: Problem z find

@samu:

Kod:

-ppass

?? Chyba

Kod:

-p

jeśli już...........

Offline

 

#6  2020-12-07 16:00:09

  urbinek - Dzban Naczelny

urbinek
Dzban Naczelny
Skąd: Sosnowiec
Zarejestrowany: 2009-10-01
Serwis

Re: Problem z find

developer napisał(-a):

@samu:

Kod:

-ppass

?? Chyba

Kod:

-p

jeśli już...........

Jeśli już to czytamy dokumentację ze zrozumieniem

Kod:

man mysql

a 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.

A w wolnym czasie, robię noże :)
http://nginx.urbinek.eu/_photos/signature.png

Offline

 

#7  2020-12-07 16:01:32

  urbinek - Dzban Naczelny

urbinek
Dzban Naczelny
Skąd: Sosnowiec
Zarejestrowany: 2009-10-01
Serwis

Re: Problem z find

urbinek napisał(-a):

developer napisał(-a):

@samu:

Kod:

-ppass

?? Chyba

Kod:

-p

jeśli już...........

Jeśli już to czytamy dokumentację ze zrozumieniem

Kod:

man mysql

a 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.

A w wolnym czasie, robię noże :)
http://nginx.urbinek.eu/_photos/signature.png

Offline

 

#8  2020-12-07 16:07:36

  developer - Użytkownik

developer
Użytkownik
Zarejestrowany: 2014-03-20

Re: Problem z find

@urbinek ::

wg. dokumentacji ( którą zacytowałeś ) nie ma parametru

Kod:

-ppass

( jakto napisał autor ) tylko albo

Kod:

-p

albo

Kod:

--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

 

#9  2020-12-07 18:12:02

  urbinek - Dzban Naczelny

urbinek
Dzban Naczelny
Skąd: Sosnowiec
Zarejestrowany: 2009-10-01
Serwis

Re: Problem z find

developer napisał(-a):

@urbinek ::

wg. dokumentacji ( którą zacytowałeś ) nie ma parametru

Kod:

-ppass

( jakto napisał autor ) tylko albo

Kod:

-p

albo

Kod:

--password

Także @urbinek: jeśli kogoś pouczasz to upewnij się że masz rację.

słodki jeżu i borze z lasu....

której części

Kod:

If you use the short option form (-p), you cannot have a space between

nie zrozumiałeś?


Kod:

mysql [options] db_name

Kod:

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)


A w wolnym czasie, robię noże :)
http://nginx.urbinek.eu/_photos/signature.png

Offline

 

#10  2020-12-08 06:11:20

  developer - Użytkownik

developer
Użytkownik
Zarejestrowany: 2014-03-20

Re: Problem z find

@morfik: przyznaje się masz rację. Mój błąd przepraszam.

Offline

 

#11  2020-12-08 09:00:37

  urbinek - Dzban Naczelny

urbinek
Dzban Naczelny
Skąd: Sosnowiec
Zarejestrowany: 2009-10-01
Serwis

Re: Problem z find

developer napisał(-a):

@morfik: przyznaje się masz rację. Mój błąd przepraszam.

Dzięki, ze mnie z nim pomyliłeś ;)


A w wolnym czasie, robię noże :)
http://nginx.urbinek.eu/_photos/signature.png

Offline

 

#12  2020-12-08 09:44:25

  developer - Użytkownik

developer
Użytkownik
Zarejestrowany: 2014-03-20

Re: Problem z find

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

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)