Будет ли эта команда «находить и удалять» работать со звездочкой даже с кавычками?

Я хочу запустить такую ​​же команду, в которой будут удалены файлы AVI старше 7 дней:

найти "/ home / user / videos folder / *. avi" -mtime +7 -exec rm -f

Но, как вы можете видеть, папка видео имеет пробел, поэтому мне пришлось поместить этот путь в кавычки. Но, будет ли звездочка все еще выполнять свою работу, чтобы найти все файлы AVI, или Linux теперь подумает, что звездочка является фактическим именем файла?

Давайте просто предположим, что я не хотел удалять пробел в пути переименовав папку.

2
задан 10 December 2011 в 21:36

1 ответ

Вам нужно немного переформатировать свою команду, чтобы она работала.

Попробуйте следующее:

find "/home/user/videos folder" -name "*.avi" -mtime +7 -exec rm -f {} \;

Или, в GNU find, для достижения того же самого без -exec :

find "/home/user/videos folder" -name "*.avi" -mtime +7 -delete

Первым аргументом для поиска является папка для поиска - вы не должны пытаться размещать весь свой фильтр здесь, а только отправную точку. Затем используйте -name, чтобы сказать, какой шаблон искать. Вы можете попробовать это без -exec или -delete сначала, пока не будете удовлетворены, тогда вы не нанесете никакого урона, попробовав его.

Прикрепление аргумента в кавычках в основном останавливает оболочку от возиться с Это. Если вы используете -name *.avi, то аргумент, который будет видеть find, может быть любым, потому что оболочка будет анализировать его (и заменить его содержимым текущего каталога, который заканчивается на .avi), прежде чем вызывать find. Это обычно плохо и приведет к неожиданным результатам. find знает, как разбирать *.

3
ответ дан 25 May 2018 в 16:03
  • 1
    Вы пропустили финал {} \;. Кроме того, вы можете использовать -delete с GNU find, а не -exec rm {} \;. – enzotib 10 December 2011 в 21:49
  • 2
    Большое спасибо! Это точно ответило на мой вопрос. Это работает для меня на сервере Ubuntu: find " / home / user / videos folder " -name " *. avi " -mtime +7 -exec rm -f {} \; – nLinked 10 December 2011 в 22:02

Другие вопросы по тегам:

Похожие вопросы: