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/.
Strony: 1
Mam folder "Documents" w nim 5000 plikow z rozszerzeniem .pdf.
Polecenie:
find /home/mark/Documents -type f -name "*." -exec grep vim {} \; -print
odfiltrowuje ok 30 plikow ze stringiem "vim" w naglowku.
Chce je przeniesc do subfolderu "vim_cheatscheets"
Tworze subfolder "vim_cheatscheets"
Wchodze w Documents i wydaje komende:
find ./ -type f -exec grep -l vim {} \; | xargs -I {} mv {} vim_cheatscheets
Wynik.
Wiekszosc plikow .pdf ze stringiem "vim" zostala pawidlowo wyselekcjonowana sposrod wszystkich 5tys plikow, rowniez prawidlowo przeniesiona do subfolderu "vim_cheatscheets"
Niestety ta komenda jest zbyt ogolna i nie przeniosla lub przeniosla zbyt wiele plikow.
Jak zrobic to bardziej precyzyjnie?
Ostatnio edytowany przez Karoll (2023-08-08 10:36:26)
Offline
Poniewaz sa kategoryzowane nie wedlug kryterium rozszerzenia tzn .pdf lecz wg kryterium wspolnego tematu ktorego dotycza tzn vim.
Segregowanie tematyczne a nie rozszerzeniowe.
Offline
Karoll napisał(-a):
Niestety ta komenda jest zbyt ogolna i nie przeniosla lub przeniosla zbyt wiele plikow.
Jak zrobic to bardziej precyzyjnie?
Po pierwsze ty musisz być bardziej precyzyjny. Nie wiemy jakie pliki tam masz i dlaczego przeniosło ci zbyt mało/za dużo.
Przede wszystkim przeszukiwać i wyświetlić możesz jedną komendą
find /home/mark/Documents -type f -name "*vim*.pdf"
Offline
Nie wiem jak mozna to bardziej precyzyjnie napisac.
Jest folder Documents w nim 5000 plikow z rozszerzeniem .pdf. Wszystkie sa PDFy tylko dotycza roznych spraw i dlatego maja rozne tytuly. W niektorych tytulach powtarzaja sie
te same stringi np "vim" Ta comenda chce odfiltrowac i przeniesc wszystkie pliki ze stringiem "vim" do folderu, ktory bedzie sie nazywal np "VIMy"
Ps. Twoja komenda:
find /home/mark/Documents -type f -name "*vim*.pdf"
nie dala zadnego rezultatu.
Offline
Zawsze możesz przefiltrować x kilka, np (ja wiem że to głupie rozwiązanie, ale tylko to mi przyszło do % głowy...):
find | grep *vim | grep vim* | grep *pdf
I ofc przerzucić jako argument w skrypcie :D
Ostatnio edytowany przez Pavlo950 (2023-08-04 21:13:21)
Offline
for i in $(find /home/mark/Documents -type f -name "*vim*.pdf"); do mv $i vim_cheatscheets/ ; done
Offline
@Pavlo950
Niestety, ta komenda nie daje zadnego rezultatu.
Dobre checi to polowa sukcesu, moze nastepnym razem (;-)
@mati75
Zmienilem nieco "sciezke" :
for i in $(find /home/mark/Documents -type f -name "*vim*.pdf"); do mv $i /home/mark/Downloads/vim_cheatscheets/ ; done
i smiga az milo. Dziekuje za skuteczna pomoc.
Ostatnio edytowany przez Karoll (2023-08-07 12:41:24)
Offline
Karoll napisał(-a):
@Pavlo950
Niestety, ta komenda nie daje zadnego rezultatu.
Dobre checi to polowa sukcesu, moze nastepnym razem (;-)
Mój błąd, bez "*" u mnie działa poprawnie ale nie wiadomo czy u Ciebie by się sprawdziło XD za późna pora była XD
Karoll napisał(-a):
@mati75
Zmienilem nieco "sciezke" :Kod:
for i in $(find /home/mark/Documents -type f -name "*vim*.pdf"); do mv $i /home/mark/Downloads/vim_cheatscheets/ ; donei smiga az milo. Dziekuje za skuteczna pomoc.
Zapiszę sobie na przyszłość XD
Offline
Strony: 1