Командная строка regextype для удаления файлов

Супер + 1 отлично работает. Это было то, что я искал.

создание собственной / пользовательской ярлыка с использованием

Super + 1

или

nautilus ~ / (для домашнего каталога)

просто открывает функцию поиска. Хотя это способ открыть nautilus через командную строку / терминал, но не работает из этого!

0
задан 25 May 2017 в 02:59

3 ответа

Во-первых, команда, как написано, ничего не удаляет: как указано в ответе, который вы связали

Проверьте это с помощью команды echo, и как только вы убедитесь, что в ней указаны правильные файлов, используйте rm.

Во-вторых, это слишком сложно для вашего случая, поскольку вы не хотите ограничивать удаление диапазоном или подмножеством совпадений (так что вам не нужны материалы для проверки оболочки) - вы могли бы просто

find -regextype egrep -regex '.*/[0-9]{5}_.*\.jpg' -print

(чтобы проверить) и замените -print на -delete, как только вы убедитесь, что он работает правильно.

Однако даже регулярное выражение кажется сложным - простой глобус

find -name '[0-9][0-9][0-9][0-9][0-9]_*.jpg' -print

(опять же замените -print на -delete, когда вы уверены).

Если вам не нужно искать рекурсивно , должен работать простой shell glob:

rm -i [0-9][0-9][0-9][0-9][0-9]_*.jpg
2
ответ дан 22 May 2018 в 22:16
  • 1
    Я настоятельно рекомендую использовать команду trash из пакета trash-cli вместо -delete или rm при использовании чего-либо типа регулярного выражения или подстановочных знаков. Частично просто закрепить его как привычку. Слишком чертовски легко сделать трагическую ошибку другим способом. Steeldriver, пожалуйста, поправьте меня, если я ошибаюсь, полагая, что delete - это своего рода быстрый rm, встроенный для поиска. Я не могу найти его в человеке. Возможно, ваша версия новее. Мой findutils - 4.6.0 + git + 20160126-2. – Lew Rockwell Fan 25 May 2017 в 05:30

Во-первых, команда, как написано, ничего не удаляет: как указано в ответе, который вы связали

Проверьте это с помощью команды echo, и как только вы убедитесь, что в ней указаны правильные файлов, используйте rm.

Во-вторых, это слишком сложно для вашего случая, поскольку вы не хотите ограничивать удаление диапазоном или подмножеством совпадений (так что вам не нужны материалы для проверки оболочки) - вы могли бы просто

find -regextype egrep -regex '.*/[0-9]{5}_.*\.jpg' -print

(чтобы проверить) и замените -print на -delete, как только вы убедитесь, что он работает правильно.

Однако даже регулярное выражение кажется сложным - простой глобус

find -name '[0-9][0-9][0-9][0-9][0-9]_*.jpg' -print

(опять же замените -print на -delete, когда вы уверены).

Если вам не нужно искать рекурсивно , должен работать простой shell glob:

rm -i [0-9][0-9][0-9][0-9][0-9]_*.jpg
2
ответ дан 18 July 2018 в 12:46

Во-первых, команда, как написано, ничего не удаляет: как указано в ответе, который вы связали

Проверьте это с помощью команды echo, и как только вы убедитесь, что в ней указаны правильные файлов, используйте rm.

Во-вторых, это слишком сложно для вашего случая, поскольку вы не хотите ограничивать удаление диапазоном или подмножеством совпадений (так что вам не нужны материалы для проверки оболочки) - вы могли бы просто

find -regextype egrep -regex '.*/[0-9]{5}_.*\.jpg' -print

(чтобы проверить) и замените -print на -delete, как только вы убедитесь, что он работает правильно.

Однако даже регулярное выражение кажется сложным - простой глобус

find -name '[0-9][0-9][0-9][0-9][0-9]_*.jpg' -print

(опять же замените -print на -delete, когда вы уверены).

Если вам не нужно искать рекурсивно , должен работать простой shell glob:

rm -i [0-9][0-9][0-9][0-9][0-9]_*.jpg
2
ответ дан 24 July 2018 в 20:01

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

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