'Файлы комнаты*' удаляют все соответствия из всех подкаталогов?

Я хочу удалить любой файл, который похож wordpress-891.sql из текущего каталога (не в подкаталогах).

Будет rm wordpress-*.sql добейтесь цели или это также удалит соответствия из подкаталогов?

13
задан 28 May 2017 в 12:38

4 ответа

Нет. Нормальный globbing * не является рекурсивным, и ни один не rm.

, Если имя каталога соответствует, оно не будет удалено - Вам нужно эти -r флаг для удаления каталога.

, Таким образом, безопасно сделать это, если Вы уверены, что хотите удалить те файлы.

можно также сделать rm интерактивный

rm -i wordpress-*.sql

затем, это попросит подтверждение прежде, чем удалить каждый файл

20
ответ дан 23 November 2019 в 03:10

Да это добивается цели для Вас и удаляет все файлы с той схемой в текущем каталоге. И нет, это не делает удаляет файлы в подкаталогах.

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

rm wordpress-*.sql

затем просто выполняет его с помощью ls:

ls wordpress-*.sql

файлы, которые Вы видите в выводе, являются теми, которые будут удалены.

, Когда Вы пытаетесь получить список как: foo*, лучше использовать -d переключатель с ls для предотвращения скручивания жгутов файлов списка каталог, названный foobar/ и т.д.

ls -d foo*

Этот прием работы для команд, которые не используются, чтобы сделать задание рекурсивно.

другая вещь, которую можно сделать, состоит в том, чтобы ввести желаемый вход, например: wordpress-* затем нажатие Ctrl + Высокий звук + * , и теперь все соответствия вводятся автоматически перед Вашей командой.

14
ответ дан 23 November 2019 в 03:10

Нет, rm не рекурсивно вызывает через подкаталоги.

Видят , Удаляют соответствие файлам во всех подкаталогах - SuperUser для методов для удаления файлов в подкаталогах.

, Если Вы когда-либо обеспокоены случайным удалением чего-то важного, используйте gvfs-trash (который отправляет, файлы к мусору) вместо rm (который постоянно удаляет файлы).

12
ответ дан 23 November 2019 в 03:10

Если требуется найти и удалить все файлы соответствия такой как wordpress-*.sql, можно использовать find команда.:)

Например, требуется удалить все файлы соответствия с wordpress-*.sql под test_dir, действительно любите следующее.

cd test_dir
find . -name "wordpress-*.sql" -exec rm -f {} \;

Каждый раз, когда find программа действительно находит файл соответствия, она пытается выполнить команду после после -exec опция. В этом случае rm -f {} будет выполняться и {} будет изменен на имя файла соответствия. Например.

rm -f wordpress-169.sql

Можно также установить глубину подкаталогов с -maxdepth опция.

cd test_dir
find . -maxdepth 3 -name "wordpress-*.sql" -exec rm -f {} \;

Обратите внимание на то, что необходимо указать -maxdepth опция перед другими опциями. Иначе можно встретить результаты, что Вы действительно не хотите видеть.

-1
ответ дан 23 November 2019 в 03:10

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

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