У меня естьBash: как бы я объединил эти две команды поиска в одну?
IFS=$'\n' read -d '' -ra files < <(find/-name "*.lproj" ! -iname "En*" ! -name "Base*" -o -name "*@3x.png" -o -name "*@3x.jpg" -o -name "*@3x.3ds" -o -path "/private/var/mobile/Containers/Bundle/Application/*/iTunesArtwork" -o -path "/private/var/mobile/Containers/Bundle/Application/*/*/*[email protected]" -o -name "*~iphone*" ! -path "*/Kik.app/*" ! -path "*/fiverr.app/*" -o -path "/private/var/mobile/Containers/Data/*/*/Library/Caches" -o -path "/private/var/mobile/Documents/Flex/*.dat" -o -path "/private/var/mobile/Containers/Data/*/*/tmp/*" -o -path "/private/var/mobile/Documents/CyDown/*" -o -path "/private/var/db/stash/_.*/Applications/*/*[email protected]" -o -path "/private/var/mobile/Containers/Data/*/*/Library/googleanalytics*" -o -path "/private/var/mobile/Containers/Data/*/*/Library/*FlurryFiles" -o -path "/private/var/mobile/Library/BatteryLife/Archives/*" -o -path "/private/var/tmp/*" -o -path "/private/var/lib/apt/lists/partial/*" -o -path "/private/var/mobile/Library/Logs/*" -o -path "/private/var/logs/*" -o -path "/private/var/root/.bash_history" -o -path "/private/var/mobile/Library/googleanalytics*" -o -path "/private/var/mobile/Library/Logs/CrashReporter/DiagnosticLogs/*" -o -path "/private/var/mobile/Library/Caches/*" ! -name "libactivator.plist" -o -iname "*.log" -o -iname "*.old" -o -iname "*.tmp")
du -hc "${files[@]}" 2>/dev/null | tail -1
rm -r "${files[@]}" >/dev/null 2>&1
И
find/-path "/path/to/location" -name '*@2x.png' | sed 's/@2x//' | xargs rm
Первый находит файлы с именами и путями, указанными, подсчитывает общий размер, а затем удаляет их. Второй находит все файлы, заканчивающиеся на «@ 2x.png», затем пытается удалить «@ 2x.png» с конца, а затем удалить файл.
Так как я могу объединить эти две команды в одну находку?
ПРИМЕЧАНИЕ: есть прямые пути и имена (в первой команде), которые заканчиваются на «@ 2x.png», из которых я не хочу удалить «@ 2x.png». Поэтому я не могу просто объединить их. например (если они были просто объединены вместе) с [email protected]
в первой команде (что означает, что я хочу удалить это точное имя), это означает, что sed удалит «@ 2x», что не то, что я хочу сделать.
Потому что я плохо разбираюсь в вещах: все в первой команде должно иметь точное имя/путь, и не будет изменен sed. Все во второй команде должно быть изменено sed, но я хочу запустить только одну команду find для обоих.