Удалить из указанных директорий файлы имена которых заданы шаблоном
ЦЕЛЬ РАБОТЫ:
Целью работы является изучение файловой структуры диска и основных ее элементов, основных сервисных функции операционной системы MS-DOS и приобретение практических навыков их использования.
ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
1. Файловая структура диска
Чтобы обратиться к данным файла, надо знать адрес первого сектора из тех, в которых хранятся данные файла. Адрес любого сектора на диске определяется тремя координатами: номером дорожки (цилиндра), номером поверхности и номером сегмента. Пользоваться адресом сектора для записи или чтения данных с диска можно, но трудоемко. На дисках одного компьютера могут храниться сотни и тысячи файлов, и для обеспечения возможности обращения к ним пришлось бы составлять и вести громоздкие каталоги, в которых для каждого файла указывался бы перечень занимаемых им секторов диска. Операционная система освобождает пользователя от необходимости иметь подобные каталоги и ведет их сама. Общая схема доступа к данным файла с использованием системных каталогов такова: пользователь обращается к файлу, указывая операционной системе его имя или спецификацию. Операционная система, прежде чем выполнить затребованные пользователем действия, обращается к файлу-каталогу, находит в нем запись, содержащую сведения о местоположении на диске файла данных, и уже затем выполняет затребованные действия.)
В процессе доступа к данным на диске операционная система использует также хранящиеся на нем таблицу размещения файлов FAT (от англ. File Allocation Table) и стартовый сектор, назначение которых будет рассмотрено позже. Стартовый сектор, таблица размещения файлов, каталог и остающееся свободным пространство памяти диска, называемое областью данных, являются элементами файловой структуры диска, создаваемыми операционной системой в процессе инициализации диска.
Операция инициализации нового диска выполняется перед тем, как начать его использовать. Если инициализации подвергается диск, уже бывший в эксплуатации, то вся ранее хранившаяся на нем информация утрачивается.
Объемы, занимаемые на гибком диске каждым из элементов файловой структуры, различаются в зависимости от формата диска.
Специфика файловой структуры жестких дисков определяется наличием возможности предварительного разбиения области памяти диска на несколько разделов. Поэтому в начальных секторах жесткого диска помещается информация о количестве разделов, их местоположении и размерах. Разделы жесткого диска в дальнейшем рассматриваются как автономные виртуальные диски, каждый из которых отдельно инициализируется и имеет собственные буквенные обозначения (С:, D:, Е:) и элементы файловой структуры, идентичные тем, которые описываются ниже применительно к гибким дискам.
Стартовый сектор — это визитная карточка диска, в которой записаны данные, необходимые операционной системе для работы с диском. Под стартовый сектор выделяется сектор 2 дорожки 0 поверхности 0. В него записываются следующие характеристики:
- идентификатор системы, если на диске записана операционная система;
- размер секторов диска в байтах;
- количество секторов в кластере;
- количество резервных секторов в начале диска (один);
- количество копий FAT на диске (обычно две);
- количество элементов в каталоге;
- количество секторов на диске;
- указатель формата диска;
- количество секторов в FAT;
- количество секторов на дорожку;
- количество поверхностей.
Кроме того, стартовый сектор хранит короткую программу в машинных кодах, используемую для загрузки в память операционной системы, если она размещена на диске. За стартовым сектором на диске следует таблица размещения файлов.
Таблица размещения файлов . В процессе работы пользователей на компьютере содержимое диска меняется: добавляются новые файлы, удаляются ненужные, некоторые файлы расширяются и т. д.
Файлу, записываемому на диск, выделяется целое количество кластеров, причем выделяемые кластеры могут находиться в различных местах диска. В отличие от непрерывных файлов, хранящихся в одной области памяти, файлы, занимающие на диске несколько областей, называются фрагментированными. Назначение FAT — хранить данные о местонахождении на диске фрагментов файлов.
Механизм доступа к файлам в MS DOS с использованием FAT реализуется следующим образом. Область данных диска рассматривается как последовательность пронумерованных кластеров. Каждому кластеру ставится в соответствие элемент FAT с тем же номером. Например, элемент 2 FAT соответствует кластеру 2 области данных диска, элемент 3 FAT — кластеру 3 и т. д.
В каталоге, содержащем сведения о файлах на диске, для каждого файла указан номер первого кластера, занимаемого файлом. Этот номер называется точкой входа в FAT. Система, прочитав в каталоге номер первого кластера файла, обращается к этому кластеру, например, записывает в него данные, затем она обращается к соответствующему элементу FAT (элементу, номер которого равен номеру первого кластера файла). Этот элемент FAT содержит номер следующего кластера, отведенного для файла на диске, и т. д.
Если файл удаляется, то занимаемые им кластеры освобождаются и в соответствующие элементы FAT записывается код 000 — признак свободного кластера. При этом данные удаленного файла остаются на диске до тех пор, пока занимаемые ими кластеры не будут выделены системой другим файлам, вновь создаваемым или расширяемым. Пока этого не случится, удаленный файл может быть восстановлен.
Таблица размещения файлов следует на диске за стартовым сектором, т. е. начинается с сектора 3 дорожки 0. На диске сохраняются обычно две копии FAT на случай, если одна будет испорчена. Под FAT отводится количество секторов, указанное в табл. 1.1 и умноженное на число сохраняемых копий FAT. Вслед за копиями FAT на диске располагается каталог диска.
Каталоги. Каталог, создаваемый операционной системой в процессе инициализации диска, называется корневым. Файл корневого каталога состоит из записей, содержащих сведения о файлах, хранящихся на диске. Каждая запись - элемент каталога - занимает 32 байт и хранит:
- имя файла (8 байт);
- расширение имени (3 байт);
- двоичный код атрибутов файла (1 байт);
- резервное поле (10 байт);
- код времени создания файла (2 байт);
- код даты создания файла (2 байт);
- номер первого кластера, занимаемого файлом — точка входа в FAT (2 байт);
- размер файла (4 байт).
Двоичный код атрибутов файла характеризует статус файла и хранит шесть указателей (6 бит), каждый из которых может принимать одно из двух значений 0 или 1. Если бит 0 установлен в «1», то файл можно только читать. Если бит 1 установлен в «1», то файл считается «спрятанным». Информация о спрятанных файлах не выдается на экран при распечатке пользователем содержимого каталога диска по команде DIR. Единица в бите 2 указывает на то, что файл является системным. Единица в бите 3 указывает, что элемент каталога описывает файл корневого каталога и поля «Время» и «Дата» этого элемента использованы под имя, идентифицирующее диск. Это имя называется меткой диска. Единица в бите 4 кода атрибутов указывает, что данный файл является подкаталогом. Ноль в бите 5, кода атрибутов имеют файлы жесткого диска, содержимое 'которых не менялось с момента записи на диск. Такие файлы имеют статус «архивных».
Размер файла корневого каталога фиксирован и зависит от формата физической структуры диска. На гибких дисках форматов D-8, D-9, QD-9 под файл каталога отведено 7 секторов, по 512 байт. Таким образом, корневой каталог дисков указанных форматов может хранить сведения максимально о 112 файлах. Этого количества обычно бывает достаточно для гибких дисков, для которых характерной является структура организации доступа к файлам с одним каталогом (рис. 2.2.а).
Для доступа к данным жестких дисков, хранящих сотни и тысячи файлов, применяется древовидная структура каталогов (рис. 2.2.б). В вершине древовидной структуры находится корневой каталог, создаваемый в процессе инициализации диска. Ветви дерева образуют подкаталоги, которые создаются и удаляются по инициативе пользователей по специальным командам. Старший каталог по отношению к непосредственно подчиненным ему каталогам называют каталогом-отцом. Так на рис. 2.2.б для каталогов 1 и 2 каталогом-отцом корневой каталог. Подкаталог 1 является каталогом-отцом для подчиненного ему подкаталога 3.
В операционной системе MS DOS каждый из каталогов может хранить сведения и о файлах-подкаталогах, и о файлах данных. Положение на диске корневого каталога фиксировано и известно операционной системе - он располагается, начиная с секторов, следующих за FAT. Подкаталоги хранятся в области данных диска, как обычные файлы. Данные о местонахождении подкаталогов корневого каталога хранятся в корневом каталоге. Подкаталоги корневого каталога хранят сведения о подчиненных им подкаталогах и т. д.
Подкаталоги состоят из тех же элементов, что и корневой каталог. Каждый элемент подкаталога хранит сведения о файле данных или о файле подчиненного каталога. Отличие элемента, описывающего подкаталог, состоит в том, что бит 4 кода атрибутов файла устанавливается в положение «1» и поле «Размер файла» содержит нулевое значение. Размер файла подкаталога неограничен, что позволяет в пределах емкости диска организовать хранение любого количества файлов. Первый и второй элементы файла-подкаталога имеют в поле «Имя файла» значения «.» и «..». Элемент с именем «.» описывает собственно подкаталог, а элемент с именем «..» описывает файл каталога-отца. Наличие в подкаталоге элемента с данными о каталоге-отце обеспечивает взаимосвязь каталогов разного уровня и позволяет продвигаться по дереву каталога не только от корневого каталога к подчиненным подкаталогам, но и в обратном направлении.
Область данных. Область данных располагается вслед за корневым каталогом и занимает все остальное пространство памяти диска. Файлам, хранящимся в области данных, по возможности выделяется непрерывная последовательность блоков памяти (кластеров). Если файл расширяется или записывается на место ранее удаленного более короткого файла, то файлу может быть выделено несколько областей памяти на диске - файл становится фрагментированным. Связь между отдельными фрагментами файла обеспечивается указателями, хранящимися в FAT .
Со временем степень фрагментированности файлов на диске возрастает. При этом полезная емкость памяти области данных диска не изменяется. Однако время доступа к данным на диске несколько возрастает, так как для того, чтобы считать или записать данные в непрерывный файл, надо подвести магнитные головки чтения-записи к нужной дорожке на диске один раз, а в фрагментированный файл - столько раз, сколько файл имеет фрагментов, расположенных на разных дорожках диска.
В некоторых случаях, например при работе с базами данных, когда часто создаются и удаляются временные файлы, замедление доступа к файлам, вызванное их возросшей фрагментацией, может стать весьма ощутимым. Упростить фрагментацию файлов в области данных диска можно, выполнив средствами ОС или предназначенных для этого прикладных программ, например PC-COMPRESS, специальную операцию, которую не совсем точно называют «сжатием» (от англ. compress). Суть этой операции сводится практически к переписыванию заново содержимого диска, но каждый из хранившихся на диске файлов, в процессе выполнения операции «сжатия вновь записывается на диск уже как непрерывный.
2. Начальные сведения об операционной системе MS-DOS
Операционная система DOS состоит из следующих основных частей;
BIOS - базовая система ввода/вывода представляет собой набор команд, находящихся в постоянном запоминающем устройстве (ПЗУ) компьютера. Базовая система ввода/вывода обеспечивает выполнение наиболее универсальных услуг операционной системы, связанных с осуществлением ввода/вывода, а также содержит тест функционирования компьютера, проверяющий работу памяти и устройств компьютера при включении электропитания. Базовая система ввода/вывода содержит также программу вызова загрузчика операционной системы.
Загрузчик операционной системы - это очень короткая программа, находящаяся на каждой дискете с операционной системой MS-DOS и обеспечивающая загрузку двух модулей операционной системы IO.SYS и MSDOS.SYS.
IO.SYS - обеспечивает обмен информацией с внешними устройствами (операции ввода/вывода).
MSDOS.SYS - управляет работой накопителей на гибком магнитном диске' и обеспечивает создание файлов, а также следит за использованием оперативной памяти компьютера прикладными программами.
3. Начальная загрузка MS-DOS
Начальная загрузка MS-DOS выполняется в следующих случаях:
- при включении электропитания компьютера;
- при нажатии на клавишу Reset (на корпусе компьютера);
- при одновременном нажатии клавиш Ctrl-Alt-Del на клавиатуре.
С:\>_
которое означает, что операционная система находится в ожидании команды пользователя из числа известных системе. Команда вводится с клавиатуры после знака >. Символ С означает логическое имя устройства (дисковод), с которого произведена загрузка операционной системы.
4. Файловая система MS-DOS
4.1. Понятие файла, каталога
Информация на магнитных дисках хранится в файлах. Файл - это поименованная область на диске, в которой записаны тексты программ, текстовые документы и т.п.
В именах файлов для задания группы файлов (в командах поиска или выбора файлов в одном каталоге) можно использовать символы " * " и " ? ”. Символ " * " обозначает любое число любых символов в имени файла или в расширении имени файла. Символ " ? " обозначает один произвольный символ или отсутствие в имени файла или в расширении имени файла. Не допускается использовать в качестве имени файла имен, являющихся именами устройств.
На каждом диске имеется один главный или корневой каталог. Корневой каталог является непоименованным, в нем регистрируются файлы и подкаталоги первого уровня. В каталогах первого уровня регистрируются файлы и каталоги второго уровня. Таким образом, формируется иерархическая древовидная структура каталогов на магнитном диске
4.2. Полное имя файла
Для поиска нужного файла в иерархической структуре каталогов на магнитном диске необходимо в команде указать полное имя файла. Полное имя файла имеет следующий вид:
[дисковод:] [\путь \] имя файла.
Путь - это последовательность из имен каталогов или символов " .. ", разделенных символом ” \ ”. Если путь начинается с символа “\”, то маршрут вычисляется от корневого каталога диска, иначе от текущего каталога. Каждое имя в пути соответствует входу в подкаталог с таким именем, а символ “ .. " в пути соответствует входу в надкаталог.
ФОРМАТЫ ОСНОВНЫХ КОМАНД ОС MS-DOS
1. Команды смены текущего дисковода
Для смены текущего дисковода надо набрать имя дисковода, который должен стать текущим, a затем двоеточие, например:
A: - переход на дисковод А;
В: - переход на дисковод В;
С: - переход на дисковод С.
После ввода команды надо нажать клавишу Enter.
2. Изменение текущего каталога
Для изменения текущего каталога имеется команда CD (Сhange Directory).
cd [дисковод:][\ путь]
Если задан дисковод, то текущий каталог изменяется на этом дисководе, иначе - на текущем дисководе.
3. Просмотр каталога
Для вывода оглавления каталога имеется команда DIR.
DIR [дисковод:] [\путь \] [имя файла][/P] [/W]
Можно использовать групповое имя файла. Если имя файла не задано, то выводится все оглавление каталога. Если не заданы дисковод или путь, то подразумевается текущий дисковод и текущий каталог. Для каждого файла команда DIR сообщает его имя, расширение имени, размер файла в байтах, дату и время создания или последнего обновления файла. Подкаталоги отмечаются < DIR>. В конце выдачи сообщается о размере свободного пространства на диске. Параметр /P задает полноэкранный вывод оглавления.
4. Создание каталога
Для создания нового каталога имеется команда MD (Make Directory).
md [дисковод:][\ путь\]
5. Уничтожение каталога
Для удаления пустого каталога имеется команда RD (Remove Directory).
rd [дисковод:][\ путь\]
6. Удаление файлов
Для удаления файлов имеется команда DEL (Delete).
del [дисковод :] [путь \] имя файла
В команде может быть указано групповое имя файла. Если Вы захотите удалить все файлы из каталога командой del *.*, то операционная система выдает Вам запрос:
Are you sure (Y/N)? (Вы уверены?)
Для удаления файлов надо нажать "Y" ( Enter), для отмены команды - нажать "N" (Enter).
7. Переименование файлов
Для переименования файлов имеется команда REN(Rename).
ren [дисковод:][\путь\]имя файла имя файла.
Первое имя файла в команде задает имя (имена) переименовываемых файлов, второе - новое имя (имена) файлов. Переименовываются все файлы из заданного каталога, подходящие под шаблон, заданный в первом имени файла в команде.
8. Вывод файла на экран
type [дисковод: ] [\путь \] имя файла
Вывод на экран можно приостановить нажатием [Ctrl-S]. Повторное нажатие [Ctrl-S] возобновляет вывод на экран. Закончить вывод на экран можно, нажав на [Ctrl-C] или [Ctrl-Break].
9. Копирование файлов
Для копирования файлов имеется команда COPY.
COPY [дисковод:] [\путь\] имя файла [дисковод :] [\путь\] имя-файла.
COPY [дисковод:] [\путь\] имя файла [дисковод:][\путь].
Из каталога, указанного в первом параметре команды, копируются файлы, заданные именем файла в первом параметре команды. Дисковод и путь во втором параметре команды указывают каталог, в который копируются файлы. Если во втором параметре имя файла отсутствует, то имена файлов при копировании не меняются. Если во втором параметре команды задано имя файла, то оно указывает новое имя копируемого файла. В команде COPY вместо имен файлов можно использовать обозначение устройств, например:
CON - консоль (клавиатура для ввода, монитор для вывода).
При вводе с клавиатуры конец файла задается как [Ctrl-Z] или [F6];
PRN - принтер (только как выходной файл).
10. Изменение отзыва операционной системы
Для изменения отзыва операционной системы имеется команда PROMPT (Prompter означает " суфлер в театре").
PROMPT [<текст>]
Текст составляется из букв, указывающих, что в отзыв включается:
- t - текущее время;
- d - текущая дата;
- р - маршрут рабочего каталога текущего диска;
- g - символ >.
Перечисленные буквы в <тексте> разделяются символом &. Примеры:
А> PROMPT &p&g. Отзыв будет включать маршрут рабочего каталога на текущем диске и заканчиваться символом >;
A> PROMPT. Восстанавливается стандартный отзыв, указывающий букву -идентификатор текущего диска.
В этой статье мы объясним, как удалять каталоги в Linux с помощью команд rmdir , rm и find .
Подготовка
При удалении каталога с помощью файлового менеджера рабочего стола каталог фактически перемещается в корзину и может быть легко восстановлен.
Будьте особенно осторожны при удалении файлов или каталогов из командной строки, поскольку после удаления каталога с помощью команд, описанных в этой статье, его невозможно полностью восстановить.
В большинстве файловых систем Linux для удаления каталога требуется разрешение на запись в каталог и его содержимое. В противном случае вы получите ошибку «Операция запрещена».
Имена каталогов с пробелами должны быть экранированы обратной косой чертой ( / ).
Удаление каталогов с помощью rmdir
Чтобы удалить каталог с помощью rmdir , введите команду, а затем имя каталога, который вы хотите удалить. Например, чтобы удалить каталог с именем dir1 , введите:
Если каталог не пустой, вы получите следующую ошибку:
В этом случае вам нужно будет использовать команду rm или вручную удалить содержимое каталога, прежде чем вы сможете его удалить.
Удаление каталогов с помощью rm
По умолчанию при использовании без каких-либо параметров rm не удаляет каталоги. Чтобы удалить пустой каталог, используйте параметр -d ( --dir ), а для удаления непустого каталога и всего его содержимого используйте параметр -r ( --recursive или -R ).
Например, чтобы удалить каталог с именем dir1 вместе со всем его содержимым, введите:
Если каталог или файл в каталоге защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить каталог без запроса, используйте параметр -f :
Чтобы удалить сразу несколько каталогов, вызовите команду rm , после которой укажите имена каталогов, разделенные пробелом. Приведенная ниже команда удалит все перечисленные каталоги и их содержимое:
Параметр -i указывает rm запрашивать подтверждение удаления каждого подкаталога и файла. Если в каталоге много файлов, это может немного раздражать, поэтому вы можете рассмотреть возможность использования опции -I которая предложит вам только один раз, прежде чем продолжить удаление.
Чтобы удалить каталог, введите y и нажмите Enter .
Вы также можете использовать обычные расширения для сопоставления и удаления нескольких каталогов. Например, чтобы удалить все каталоги первого уровня в текущем каталоге, который заканчивается на _bak , вы должны использовать следующую команду:
Использование регулярных расширений при удалении каталогов может быть рискованным. Рекомендуется сначала перечислить каталоги с помощью команды ls чтобы вы могли видеть, какие каталоги будут удалены, прежде чем запускать команду rm .
Удаление каталогов с помощью find
Давайте проанализируем команду выше:
Удаление всех пустых каталогов
Чтобы удалить все пустые каталоги в дереве каталогов, выполните:
Вот объяснение используемых опций:
Используйте параметр -delete с особой осторожностью. Командная строка поиска оценивается как выражение, и если вы сначала добавите параметр -delete , команда удалит все, что находится ниже указанных вами начальных точек.
Всегда сначала проверяйте команду без опции -delete и используйте -delete в качестве последней опции.
/ bin / rm: слишком длинный список аргументов
Есть несколько разных решений этой проблемы. Например, вы можете cd в каталог и вручную или с помощью цикла для удаления Подкаталогов один за другим.
Выводы
С помощью rm и find вы можете быстро и эффективно удалять каталоги по различным критериям.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
в основном, у меня есть альбом музыки, и я хочу, чтобы удалить имя автора из всех mp3-файлов вместо того, чтобы вручную сделать это сам. Есть ли функция в Windows 7 Ultimate, которая может сделать это для меня?
вы также можете попробовать использовать PowerShell, мощный инструмент командной строки Windows. Вы выполните следующую команду:
Полная Команда:
get-childitem *.mp3
Здесь перечислены все файлы, имена которых заканчиваются на .mp3 . Затем они передаются в следующую команду с помощью | оператора.
foreach < rename-item $_ $_.Name.Replace("Radiohead -", "") >
Это заменяет все экземпляры Radiohead - ни с чем, обозначается "" , эффективно стирая слово из всех файлов в каталоге.
вы также можете изменить get-childitem *.mp3 до get-childitem - это переименует все файлы в каталоге, а не только файлы, имена которых заканчиваются на .mp3 .
забудьте о сложных скриптах для этого.
rename - очень старая и никогда должным образом не выполняемая команда. Если вы не используете его правильно, результат может вас удивить.
например, чтобы удалить префикс abcd С abcd1.txt , abcd2.txt , abcd3.txt etc. для того, чтобы получить 1.txt , 2.txt , 3.txt просто использовать
вам нужно то же количество / как количество исходных символов, которые вы хотели бы удалить.
Do заключите оба аргумента в двойные кавычки.
Это может сработать.
создать пакетный файл следующим образом:
попробуйте это программное обеспечение
Так как вы имеете дело с музыкальными файлами, забудьте о пакетном файле и утилит для переименования файлов. Используйте специальную программу, например Mp3tag, который является абсолютной необходимостью, если вы действительно в организации вашей музыки.
основные возможности
Пакетное Редактирование Тегов Запись Тэгов Id3v1.1, ID3v2 тэгов.3, ID3v2 тэгов.4, в формате mp4 и WMA, APEv2 Теги и Vorbis комментарии для нескольких файлов сразу.
поддержка Обложка скачать и добавить обложки альбомов в файлы и сделать вашу библиотеку еще более блестящей.
импорт из Amazon, discogs, freedb, MusicBrainz сохранить ввод и импорт теги из онлайн баз данных, такие как Амазонки, биография, фотографии, с freedb, в MusicBrainz, с лишним.
заменить символы или слова замена строк в тегах и именах файлов (с поддержкой регулярных Формы самовыражения.)
Создание Плейлистов автоматически создание списков воспроизведения и управление ими автоматически во время редактирования.
переименование файлов из тегов переименование файлов на основе информации тегов и импорт тегов из имен файлов.
экспорт в HTML, RTF, CSV генерировать хорошие отчеты и списки ваших коллекции на основе пользовательских шаблоны.
Полная Поддержка Unicode пользовательский интерфейс и маркировать полно Совместимых Unicode.
кроме этих главным образом характеристик Mp3tag предлагает множество других функций и характеристики колебаясь от пакетный экспорт встроенных обложек альбомов, поддержка тегов для iTunes как тип носителя или настройки телешоу, к объединению нескольких действий в группы, которые могут быть применены с один щелчок мыши.
ReNamer можете это сделать. В ReNamer просто добавьте правило 'remove' (правило 'delete' также будет работать):
а затем перетащите файлы или папку, содержащую файлы, которые вы хотите переименовать в его окно (или используйте кнопки "Добавить файлы / папки"), затем проверьте предварительный просмотр и после проверки нажмите "переименовать":
Я просто хочу добавить мое любимое: Переименовать Master
эта утилита будет добавлять, удалять или заменять части имени файла с легкостью, а также поддерживает переименование через свойства файла, MP3 теги, jpeg jfif и EXIF теги, видео Теги и текстовые файлы. Пакетное переименование, простое в использовании, но все еще очень мощное.
особенности
у меня было соответствующее требование.
внимание:
Сделайте резервную копию папки, в которой вы пробуете следующие команды.
Пример 1:
внимание: эта команда перезаписывает часть существующего имени файла
если в каталоге всего два файла:
и если вы запустите:
затем файлы изменяются to:
Пример 2:
внимание: эта команда удаляет часть существующего имени файла
Удаление всех файлов и папок имеющих в названии определеное слово(или набор символов)
На самом деле это единственный раздел про unix на этом форумеМодератор: /dev/random
Удаление всех файлов и папок имеющих в названии определеное слово(или набор символов)
man rm мне ничего не дал..(( нашел что rf -- *название* (без звездочек) удаляет файл, имя которого начинается с *название*, rmdir так же удаляет только указанные.НО мне нужна команда, которая удаляет все файлы и каталоги содержащие в названии заданные мной буквы, цифры и символы.
например:
locate mirage выдает
По одному эти файлы,каталоги и директории удалять надоедает.
Есть ли возможность избавится от лишней работы?
проверил - файлы и т.д. удалены,
НО locate mirage по прежнему находит эти файлы. гм, почему она врет?)
ВСЕМ СПАСИБО!
З.Ы.: решил -
дык оно по индексу ищет. Индекс обычно создаётся каждый день в 4 утра.
А удаляю я так find . -name "*mirage*" -delete
Скоро придёт
Осень
Потому что locate ищет не напрямую по файловой системе, а по собственным базам данных. Эти базы по умолчанию обновляются раз в сутки путем запуска updatedb. если у вас будет 100500 мильонов файлов *mirage*, то rm вылетит с ошибкой.
А папки test_mirage и mirage_copy останутся, если в них будут файлы. Либо, если нужны только файлы, я бы еще указывал -type f , чтобы совсем чистенько без ошибок работало (: UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
злой вы. Попробуйте удалить Documents из маздая - удалится куча всего нужного, кроме самой Documents\ and\ Settings :(
Скоро придёт
Осень
ИМХО не следует удалять важные файлы, если имя каталога попадает под шаблон. А если попадает и то, и другое, то команда отлично удаляет. Только надо обходить в другом порядке (find -depth), впрочем, это верно для любого удаления (для опции delete обратный обход включается автоматически).
не только. У меня 63 файла в системе, которые попадают под этот шаблон. Очень легко ошибиться :(
Скоро придёт
Осень
The more you believe you don't do mistakes, the more bugs are in your code.
а у меня сейчас работает. ИЧСХ правильно.
а в slacky 10.2 просто откусывала молча хвост.
а я сам не в курсе, надо-ли удалять файл, если под шаблон попадает каталог?
Скоро придёт
Осень
ИМХО не следует удалять важные файлы, если имя каталога попадает под шаблон. А если попадает и то, и другое, то команда отлично удаляет. Только надо обходить в другом порядке (find -depth), впрочем, это верно для любого удаления (для опции delete обратный обход включается автоматически).
Специально продемонстрирую (установил и удалил заново) вот что выводит:
по-моему есть разница. ( locate -e показывает записи которые относятся к существующим на момент поиска файлам(если я правильно перевел))
по-моему есть разница. ( locate -e показывает записи которые относятся к существующим на момент поиска файлам(если я правильно перевел))
неправильно.
find ищет в тек. каталоге
slocate по всему диску
slocate -e dir по директориям, в которых есть dir.
Есть 2 разницы между find и slocate
1) slocate находит файлы которые ещё есть в бд, и не находит которых ещё нет в бд.
2) slocate не показывает закрытые каталоги, а find туда не пускают. Последняя плачет по этому поводу.
А команду locate давно уже выпилили.
ну она и ищет в тек. каталоге. Смените точку на слеш
find / -iname "*mirage*"
Скоро придёт
Осень
Да вот ни фига. Есть 3 реализации утилиты locate: gnu locate, slocate и mlocate (на самом деле есть ещё rlocate и куча других, но они малоизвестны). Первую реализацию давно отовсюду выпилили, вторую выпиливают, а третья приходит на место второй. Но при этом все три - это "команда locate".
Скоро придёт
Осень
The more you believe you don't do mistakes, the more bugs are in your code. гм. как же тогда искать в закрытых каталогах? ведь большинство "ненужных ненужностей оставшихся после удаленного пакета" лежат именно там.
иначе - зачем их закрывать было?! а то, что "после удаления" осталось - это либо бекап для отката, либо мусор, который сам удаляется.
Скоро придёт
Осень
$ locate radiusd.conf | grep ^/etc | wc -l
0
$ sudo locate radiusd.conf | grep ^/etc | wc -l
1 Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог иначе - зачем их закрывать было?! а то, что "после удаления" осталось - это либо бекап для отката, либо мусор, который сам удаляется. гм, а вот с этим согласитесь?
Код
sudo find / -iname "*mirage*" -type fd | xargs rm -ir dirname
1) -type fd как-то странно.
2) порядок неверный: вы должны сначала удалить файлы внутри директорий, а потом директории, если там нет файлов. Т.е. в порядке обратном созданию. У вас что-то непонятное - вы удаляете сначала директорию, потом пытаетесь удалить файлы в ней. Нужен ключ -depth
3) find умеет сама удалять ключом -delete. Подтверждение можно запросить опцией -ok.
4) сам подход неверный! Надо найти список файлов (создать его, если нет), а потом удалять по этому списку. А не по имени - ибо имя может случайно совпасть. Кроме того, пакет XYZ вправе создать файл ABC. Если уж так всё плохо в вашем дистрибутиве - ищите по дате, а не по имени. (ясно, что это тоже ненадёжно). А лучше поставьте слаку, там в /var/log/package/ лежат списки файлов для каждого пакета. (правда, никто об этом не знает, и думает, что там помойка. Ан нет. )
Скоро придёт
Осень
не верю. У вас-же не маздай. Может вы как-то неправильно ставите?
Скоро придёт
Осень
Код
sudo find / -iname "*mirage*" -type fd | xargs rm -ir dirname
1) -type fd как-то странно.
2) порядок неверный: вы должны сначала удалить файлы внутри директорий, а потом директории, если там нет файлов. Т.е. в порядке обратном созданию. У вас что-то непонятное - вы удаляете сначала директорию, потом пытаетесь удалить файлы в ней. Нужен ключ -depth
3) find умеет сама удалять ключом -delete. Подтверждение можно запросить опцией -ok.
4) сам подход неверный! Надо найти список файлов (создать его, если нет), а потом удалять по этому списку. А не по имени - ибо имя может случайно совпасть. Кроме того, пакет XYZ вправе создать файл ABC. Если уж так всё плохо в вашем дистрибутиве - ищите по дате, а не по имени. (ясно, что это тоже ненадёжно). А лучше поставьте слаку, там в /var/log/package/ лежат списки файлов для каждого пакета. (правда, никто об этом не знает, и думает, что там помойка. Ан нет. )
Читайте также: