- как удалить файлы, кроме некоторых?
- Re: как удалить файлы, кроме некоторых?
- Re: как удалить файлы, кроме некоторых?
- Re: как удалить файлы, кроме некоторых?
- Re: как удалить файлы, кроме некоторых?
- Re: как удалить файлы, кроме некоторых?
- Re: как удалить файлы, кроме некоторых?
- Как удалить файл через терминал Linux
- Удаление файлов в Linux
- Выводы
- unixforum.org
- В директории удалить все файлы кроме заданных
- В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Re: В директории удалить все файлы кроме заданных
- Как удалить все файлы в каталоге, кроме одного
- Удалить файлы из каталога с помощью rm
- Удалить файлы из каталога с помощью find
- Удалите файлы из каталога с помощью переменной GLOBIGNORE
как удалить файлы, кроме некоторых?
Как, используя rm, удалить огромное кол-во файлов кроме каких-то нужных??
Быстренько ответели! 🙂
Re: как удалить файлы, кроме некоторых?
Открой для себя чудесный мир регулярных выражений 🙂
Re: как удалить файлы, кроме некоторых?
$ for ((i = 0; i touch $i;
> done;
$ ls -al
total 0
drwxr-xr-x 2 YurkovVV Админист 0 Jan 9 07:56 .
drwxr-xr-x 8 YurkovVV Админист 0 Jan 9 07:55 ..
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 0
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 1
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 2
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 3
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 4
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 5
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 6
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 7
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 8
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 9
$ for i in `ls —ignore=3` ; do rm -f $i;done;
$ ls -al
total 0
drwxr-xr-x 2 YurkovVV Админист 0 Jan 9 08:01 .
drwxr-xr-x 8 YurkovVV Админист 0 Jan 9 07:55 ..
-rw-r—r— 1 YurkovVV Админист 0 Jan 9 07:56 3
Re: как удалить файлы, кроме некоторых?
Во-первых, всё то, что ты понаписал, будет работать только с «хорошими» именами файлов, а во-вторых, у тебя действительно имя группы русскими буквами? Это ж ещё додуматься надо.
Re: как удалить файлы, кроме некоторых?
Под «хорошими» подразумевается regexp.
Хорош оффтопить, это же MSYS. 😉
Re: как удалить файлы, кроме некоторых?
Лучше пример своих файлов приведи, а то меня сейчас съедят некоторые!
Re: как удалить файлы, кроме некоторых?
find . -type f -not -name «asdvc» -not -name «sdfb» -print0 |xargs -0 rm
Удаляем все файлы, кроме имеющих имена «asdvc» и «sdfb». Быстро, качественно, надёжно. Гарантия полгода.
Источник
Как удалить файл через терминал Linux
Эта небольшая заметка ориентирована на совсем начинающих. Сегодня мы рассмотрим как удалить файл linux через терминал. Для более опытных пользователей это элементарная задача, но новичкам надо с чего-то начинать. Знать как работать с файлами в консоли очень важно.
К тому же удаление из консоли дает много преимуществ и большую гибкость. Например, с помощью специальной команды вы можете полностью стереть файл с жесткого диска, так что его уже ни за что невозможно будет восстановить или одной командой с помощью специальных символов, условий или регулярных выражений удалить сотни ненужных файлов в одном каталоге или подкаталогох соответствующих определенному критерию.
В Linux для удаления файлов предусмотрена стандартная утилита rm. Как и все остальные, стандартные утилиты в имени rm тоже заложена определенная идея. Это сокращение от английского слова Remove.
Удаление файлов в Linux
Чтобы удалить файл linux достаточно передать в параметрах команде адрес файла в файловой системе:
Чтобы удалить все файлы, начинающиеся на слово file можно использовать специальный символ *, означает любой символ в любом количестве:
Эта команда удаления файла в linux должна использоваться очень осторожно, чтобы не удалить ничего лишнего. В утилите есть опция -i, которая заставляет программу спрашивать пользователя перед тем, как удалить файл linux:
rm: удалить пустой обычный файл «/home/user/file»?
Если файлов очень много, вы уверены в правильности команды и отвечать каждый раз y неудобно, есть противоположная опция — f. Будут удалены все файлы без вопросов:
rm -f /home/user/file*
Для удаления директорий, вместе с файлами и поддиректориями используется опция -R, например:
rm -Rf /home/user/dir
Будет удалено все что находиться в папке dir, и эта папка. Только будьте бдительны, чтобы не получился знаменитый патч Бармина:
Не стоит выполнять эту команду в своей системе, как видите, она удаляет все файлы в файловой системе Linux.
Удаление файла в linux также возможно с помощью утилиты find. Общий синтаксис find:
find папка критерий действие
Например, мы хотим удалить файл linux по имени:
find . -type f -name «file» -exec rm -f <> \;
Будут найдены все файлы с именем file в текущей папке и для них вызвана команда rm -f. Можно не вызывать стороннюю утилиту, а использовать действие delete:
find . -type f -name «file» -delete
Удалить все файлы в текущей директории, соответствующие определенному регулярному выражению:
find . -regex ‘\./[a-f0-9\-]\.bak’ — delete
Или удалить файлы старше определенного строка, может быть полезно для удаления старых логов:
find /path/to/files* -mtime +5 -exec rm <> \;
Будет выполнено удаление файлов через терминал все файлы в папке старше 5-ти дней.
Чтобы полностью стереть файл, без возможности восстановления используйте команду shred. Во время удаления файлов с помощью утилиты rm удаляется только ссылка на файл, само же содержимой файла по-прежнему находиться на диске, пока система не перезапишет его новыми данными, а пока этого не случится файл можно легко восстановить. Принцип действия утилиты такой — после удаления файла, его место на диске несколько раз перезаписывается.
Опцией -n — можно указать количество перезаписей диска, по умолчанию используется 3. А если указать опцию -z программа при последней перезаписи запишет все нулями чтобы скрыть, уничтожение файла.
Выводы
Вот и все. Теперь вы знаете как удалить файл в Ubuntu, как видите, делать это не так уж сложно. Если у вас остались вопросы, пишите в комментариях!
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
В директории удалить все файлы кроме заданных
Модератор: /dev/random
В директории удалить все файлы кроме заданных
Сообщение kt315e » 20.05.2013 15:45
Re: В директории удалить все файлы кроме заданных
Сообщение IMB » 20.05.2013 15:51
Re: В директории удалить все файлы кроме заданных
Сообщение t.t » 06.09.2013 21:57
Re: В директории удалить все файлы кроме заданных
Сообщение drBatty » 06.09.2013 22:07
как-то так.
Это -delete не нужно сразу ставить, лучше сначала без него посмотреть, что получается.
PS: если есть какие-то каталоги, в которые НЕ нужно заходить вообще, используйте -prune
PS2: обход осуществляется в обратном порядке, каталоги тоже обходятся. И симлинки с хардлинками. Будьте внимательны.
PS3: ещё полезно -empty, которая даёт Ъ, если файл/каталог пуст.
Скоро придёт
Осень
Re: В директории удалить все файлы кроме заданных
Сообщение t.t » 06.09.2013 22:23
И чего здесь плохого? При выводе в пайп ls выдаст тот же результат, что и find. Разве что при именах с пробелами потребуется дополнительная обработка.
Да и лишнего написали много. Я думал, любителям sed свойственна чрезмерная лаконичность, а не наоборот. 🙂
Re: В директории удалить все файлы кроме заданных
Сообщение SLEDopit » 06.09.2013 22:28
Re: В директории удалить все файлы кроме заданных
Сообщение drBatty » 06.09.2013 22:51
а я думал, что даже фанатеги микроскопа всё равно не станут рекомендовать забивать своим тотемом гвозди. (:
На самом деле — я пробовал. Способ с ls|sed|rm тупо не нужен, ибо тупо неудобен. ИМХО.
каталог ./d1/d2/d3/d4/ тоже «в текущей директории». Разве не так?
ещё PS: для задания глубины find умеет -maxdepth и -mindepth, а ls не умеет (только -R умеет)
Скоро придёт
Осень
Re: В директории удалить все файлы кроме заданных
Сообщение t.t » 06.09.2013 23:56
Строго говоря, нет. Он в директории d1/d2/d3/
Конкретно насчет find-а согласен. Да и то только при обработке самим find-ом либо -print0 | xargs -0
А насчёт for, видимо, осталась привычка со старых версий bash, где конструкция «for f in *» и пробелы-то нормально не обрабатывала — в этом смысле надо переучиваться. (:
Re: В директории удалить все файлы кроме заданных
Сообщение drBatty » 07.09.2013 06:31
Скоро придёт
Осень
Re: В директории удалить все файлы кроме заданных
Сообщение t.t » 07.09.2013 13:44
Вы знаете людей, которые всерьез называют каталоги файлами? Я таких не встречал.
Re: В директории удалить все файлы кроме заданных
Сообщение QWERTYASDF » 07.09.2013 23:12
Я извиняюсь конечно, может чего не поняла, но зачем так сложно? Ведь оболочка распознает шаблоны.
Re: В директории удалить все файлы кроме заданных
Сообщение t.t » 07.09.2013 23:53
Re: В директории удалить все файлы кроме заданных
Сообщение Rootlexx » 08.09.2013 00:07
Re: В директории удалить все файлы кроме заданных
Сообщение drBatty » 09.09.2013 05:28
а я такого каждый день наблюдаю. В зеркале.
Да и вообще считаю, что называть каталоги файлами — это такое Дао, которое просто необходимо пройти, если не хочешь всю жизнь прозябать в криво поставленном кем-то маздае.
Как всегда, ВСЁ выше(и ниже) изложенное == МХО.
а по моему опыту сложная команда find работает быстрее, и изменять её удобнее. Даже в том случае, если её результат — список файлов, который потом как-то иначе обрабатывается.
И да, субшеллы внутрь find я-бы не рекомендовал пихать. Их можно и снаружи организовать ввиде конвейера.
В итоге, по моему опыту, если нужно выполнить сложную задачу из серии «взять файлы по сложному условию и выполнить сложное действие над ними» лучше выполнять таким кодом:
А ваш конвейер == write-only макароны, который можно написать один раз, и больше НИКОГДА не трогать. Ибо проще с нуля переписать, чем исправить.
Источник
Как удалить все файлы в каталоге, кроме одного
Иногда вам нужно удалить почти все файлы из каталога, но вы хотите сохранить один или несколько из них. Когда их много, идти по одному — утомительное занятие. Это не лучший вариант, есть способы значительно упростить работу в Linux и можно сразу избавиться от всех, что вам нужно.
Например, вы можете удалить только те, которые начинаются с определенного имени, или те, которые имеют определенное расширение, и так далее. Все что возможноФактически, в других случаях я уже показывал аналогичные уроки в LxA. Здесь вы можете шаг за шагом и простым способом следовать руководству, чтобы удалить все нужные файлы, кроме тех, которые вы хотите сохранить.
И самое лучшее то, что вам не нужно будет устанавливать какую-либо программу, это легко сделать с помощью таких команд, как rm и find. То есть программы, которые уже предустановлены в любом дистрибутиве Linux. И, конечно же, метод будет основан на поиске шаблонов и использовании этих совпадений для удаления только того, что вы хотите.
Ну чтобы там исключить несколько альтернатив, Кто они такие…
Удалить файлы из каталога с помощью rm
Ну, чтобы использовать команда rm Чтобы избавиться от того, что вы чувствуете, вы должны знать перед некоторыми способами выявления закономерностей:
- * (список шаблонов) — соответствует нулю или более вхождений указанных шаблонов
- ? (список шаблонов) — соответствует нулю или одному вхождению указанных шаблонов
- + (список шаблонов) — соответствует одному или нескольким экземплярам указанных шаблонов
- @ (список шаблонов) — соответствует одному из указанных шаблонов
- ! (список шаблонов) — соответствует чему угодно, кроме одного из заданных шаблонов
к активировать extglob Чтобы использовать их, вы должны сначала выполнить следующую команду:
глаз! Я не указываю это, но предполагается, что у вас есть разрешения на выполнение этих операций и что вы находитесь внутри этого каталога, когда выполняете команду rm. Будьте осторожны с этим, потому что, если вы запустите его по другому пути, вы можете удалить файлы, которые вам не нужны. То есть перед выполнением этих команд убедитесь, что вы вошли в нужный каталог с помощью cd.
Теперь вы можете использовать rm, чтобы удалить все, что захотите. Например, удалить все файлы из каталога, кроме тех, которые соответствуют имени «Lxa»:
Вы также можете указать два или более имен, которые вы не хотите удалять. Например, чтобы избежать удаления lxa и desdelinux:
Вы можете удалить все файлы, минус те, с расширением .mp3. Например:
В конце вы можете вернуться к отключить extglob:
Удалить файлы из каталога с помощью find
Другая альтернатива rm — используйте find, чтобы удалить то, что вам нравится. Вы можете использовать канал и xargs с rm или использовать параметр -delete для поиска. То есть общий синтаксис будет таким:
Например, представьте, что вы хотите удалить все файлы из каталога, кроме файлов с расширением .jpg, вы можете использовать одну из этих двух команд, поскольку обе они дают одинаковый результат:
Вместо этого, если вы хотите добавить дополнительный узор, ты тоже мог бы. Например, предположим, что вы не хотите удалять файлы .pdf или .odt из каталога:
Конечно, вы можете сделать то же самое с | и xargs, как в предыдущем примере. Кстати, мы использовали -не отрицать, но вы можете удалить это, чтобы сделать его положительным, то есть удалить совпадающие шаблоны, а не исключать их.
Удалите файлы из каталога с помощью переменной GLOBIGNORE
Наконец, есть Другая альтернатива чтобы найти и rm, и он использует переменную среды, чтобы указать файлы, которые вы хотите удалить или исключить. Например, представьте, что вы хотите удалить все файлы в каталоге с именем Downloads, сохранив файлы .pdf, .mp3 и .mp4. В этом случае вы можете сделать следующее:
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Любители Linux » GNU / Linux » Системное администрирование » Как удалить все файлы в каталоге, кроме одного
Источник