Прежде всего, вы должны процитировать, *.srtчтобы избежать сбоев оболочки. Без кавычек это будет работать так, как вы ожидаете, только когда *.srtв текущем каталоге нет файлов.
-exec rm {} \;порождает rmдля каждого файла. -exec rm {} +удаляет много файлов одновременно; -deleteЯ считаю, что это лучшее, потому что оно не создает новых процессов.
Камиль Мачоровски
1
@ djsmiley2k, хотя -deleteи не является строго переносимым, хотя BSD и GNU оба поддерживают его. Это не указано в POSIX, но если у вас есть, это путь
Эрик Ренуф
Вот что я использовал, и он работал нормально. Спасибо всем, кто ответил и прокомментировал: find TV_Recordings/ -name "*.srt" -delete
*.srt
чтобы избежать сбоев оболочки. Без кавычек это будет работать так, как вы ожидаете, только когда*.srt
в текущем каталоге нет файлов.Ответы:
Синтаксис немного сложнее:
источник
-exec rm {} \;
порождаетrm
для каждого файла.-exec rm {} +
удаляет много файлов одновременно;-delete
Я считаю, что это лучшее, потому что оно не создает новых процессов.-delete
и не является строго переносимым, хотя BSD и GNU оба поддерживают его. Это не указано в POSIX, но если у вас есть, это путьfind TV_Recordings/ -name "*.srt" -delete