rm wszystkie wyniki mdfind, obsługa nazw ścieżek ze spacjami


1

Rozwiązałem to już za pomocą sed, ale musi istnieć lepszy sposób na radzenie sobie ze spacjami. Wpadłem na to również z kilkoma moimi skryptami.

mdfind '(kMDItemFSName=*.ipsw)'

zwraca

/Volumes/disk/november 2014/Users/someuser/Library/iTunes/iPhone Software Updates/iPhone4,2_6.1_12B411_Restore.ipsw

gdy próbuje się to potokować, pęka z powodu przestrzeni. wypróbowałem kilka metod, w tym

rm $(mdfind '(kMDItemFSName=*.ipsw)')

mdfind '(kMDItemFSName=*.ipsw)' |xargs rm -vf

jedynym rozwiązaniem, jakie znalazłem, było

mdfind '(kMDItemFSName=*.ipsw)' |sed -e 's/ /\\ /g' |xargs rm -vf

ale musi być lepszy sposób.

Dzięki za pomoc!

Odpowiedzi:


4

Możesz użyć mdfind -0do wydrukowania znaku zerowego po każdej ścieżce. Następnie, xargs -0aby przeanalizować listę dla każdego znaku null zamiast używać domyślnej białej spacji.


to działa, co więcej mogę powiedzieć
— jakethedog

Mam ten sam problem. Czy ktoś mógłby rozwinąć tę odpowiedź? Nie rozumiem, co dokładnie zrobić z informacjami.
— Jonathan van Clute

@JathanathanvanClute, jaki masz problem? Jeśli potrzebujesz pomocy z mdfind, sugeruję otwarcie nowego pytania. Ten dotyczy głównie uruchamiania komendy na każdym z wyników mdfind (w tym przypadku jest to „rm -vf”), gdy lista mdfind ma ścieżki zawierające białe spacje. Mówiąc mdfind, aby umieściła znak zerowy na końcu każdego znalezionego elementu, i nakazując xargs, aby szukał znaku zerowego przy podejmowaniu decyzji, które wyniki uruchomić polecenie, oryginalne pytanie zostało rozwiązane.
— Kent

Mam problem ze spacjami w ścieżce i mdfind, ale wydaje się, że naprawiłem to, cytując zmienną, która przechowywała ścieżkę zawierającą spację. Mój problem polegał na tym, że nie mam pojęcia, o czym mówi odpowiedź. Nie jestem programistą, więc ta odpowiedź jest w gruncie rzeczy fragmentem, który, choć wydaje się, że odnosi się do mojego dokładnego problemu, nie został wystarczająco rozwinięty, abym miał pomysł, jak go użyć. Myślę, że już jestem ustawiony, więc i tak dzięki!
— Jonathan van Clute,

Odpowiedź można poprawić za pomocą kilku objaśnionych przykładów? jak mdfind -0 -name IMG_1910 | xargs -0 ls -li(z wyjaśnieniem - czy to pomogłoby, @JathanathanvanClute?)
— Matthew Elvey
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.