Ponieważ chcesz finddziałać tylko na urządzeniach blokowych USB, poniżej przedstawiono przykład wykorzystania informacji zgłoszonych przez profil systemu, aby uzyskać punkt montażu dowolnego podłączonego i zamontowanego urządzenia blokowego USB. Robiąc to w ten sposób, nie ma znaczenia, jakie inne punkty montowania istnieją, /Volumesani nie ma znaczenia, jak nazywa się nazwa urządzenia blokowego USB, ponieważ jest to ustalone przez program profilujący system, a nie lspolecenie.
Po raz kolejny zmodyfikowałem kod, usuwając złożony wiersz poleceń, ponieważ prawdopodobnie i tak nie zostanie uruchomiony w ten sposób i jest łatwiejszy do utrzymania w formie skryptu, dodając możliwość obsługi spacji w nazwie etykiety urządzenia bloku USB .
Przez tymczasową zmianę wewnętrznego separatora pola $IFSdodanie IFS=$'\n'do skryptu zignoruje przestrzeń (i) jako separator na wyjściu greppo przekazaniu do find. Żeby nie mieszać się z żadnym kodem w pozostałej części skryptu, otrzymuję stan, $IFSa następnie go później przywracam.
W skrypcie bash:
#!/bin/bash
_ifs="$IFS"
IFS=$'\n'
for p in $(system_profiler SPUSBDataType | grep -oE '/Volumes/.*$'); do
if [ -n "$p" ]; then
find "$p"/*
fi
done >> filename.txt
IFS="$_ifs"
system_profiler SPUSBDataTypeInformacji wyjść na magistrali USB i rury to przez grepuzyskać /Volumes/$whatevernp /Volumes/USB Driveużywając -oEza '/Volumes/.*$'które wyjścia /Volumes/i wszystko po nim do końca linii, co '/Volumes/.*$'przełoży pełną ścieżkę punktu montowania jakichkolwiek zamontowanych urządzeń blokowych USB. Więc niezależnie od tego, jakie urządzenie blokowe USB jest zamontowane, jest przypisane $p(wybrałem „p” dla ścieżki ), a gdy jest używane z finddodałem to /*po, aby nie wysyłało plików dotf . ifBlok jest tam w celu uniknięcia wyjście, jeśli są zamontowane żadne urządzenie blokowe USB.
grepraz, a teraz, jak napisałem, może zwrócić tylko pełną ścieżkę (nazwy) zamontowanych urządzeń blokowych USB z wyjście programu Profil systemu w jednymgrepprocesie (na urządzenie blokujące USB). Sądzę, że byłem zbyt zmęczony, żeby zobaczyć to wczoraj wieczorem. :)