Как найти файл по части имени
Очень часто бывают такие ситуации когда не получается найти очень нужный файл на компьютере, при этом точно зная что он есть. Многие даже не помнять полное название файла и его месторасположение. Найти файл по части имени достаточно просто. В этом поможет стандартный поиск Windows, это достаточно мощный инструмент который позволят искать файлы по разным условиям, имени, типу, размеру и другим свойствам. Всех их описывать достаточно долго, да и по большому счету рядовому пользователю они не нужны. Так как чаще всего они ищут именно по имени. Сегодня расскажу как можно найти файл по части имени.
Поиск файлов по части имени
Рассмотрим все на простеньком примере, допустим есть какой-то список документов.
И если в поиск набрать «коп» то поиск найдет все документы где в начале имени встречается это сочетание букв.
А если набрать «пия» то поиск не даст результатов, так как по умолчанию введённое в поисковую строку сочетание букв или цифр будет искаться в начале имени файлов.
Для того чтобы найти файлы по части имени перед «пия» необходимо поставить звездочку «*», в этом случае в результатах отобразиться все файлы в имени которых встречается введённое сочетание символов.
Давайте рассмотрим еще один пример, есть файл именем «Лайфхаки», представим что мы помним только последнею часть «хаки».
Поиск ничего не найдет, так как он будет искать по началу имени.
Для того чтобы поиск искал введённое сочетание во всем имени нужно поставить «*».
Вот так символ «*» помогает искать файлы зная только часть имени, на самом деле подобных символом несколько, есть например, «?» оно позволят искать один пропущенный знак, например, если ввести «к?т» то поиск покажет все файлы с именем «кот», «кит», «кат» и т.д. Так жесть есть символ «#», он делает тоже самое только в числах.
Как вывести список файлов директории, имя которых начинается на заданные символы?
Какие параметры команды ls нужно использовать, чтобы вывести список файлов в директории, имя которых начинается на заданные символы (буквы)?
-
Вопрос заданболее двух лет назад
-
2017 просмотров
Команда называется ls.
Таких параметров у неё нет.
Но если вы где-то видели что-то типа ls a*, то оно скорее всего сработает как вы хотите, но не потому что это ls такой умный, а потому что ваш шелл заменил a* на список файлов начинающихся на a. С тем же успехом можно написать echo a* и увидеть такой же список.
Пригласить эксперта
Можно написать
ls | grep ^[abc]
Выведет в консоль все файлы в текущей директории, которые начинаются на a,b или c
или
ls | grep ^abc
– выведет все файлы, которые начинаются на abc
В самом ls нет параметра для регулярок.
пиши
ls -d a*
ls -d b*
ls -d abc*
-
Показать ещё
Загружается…
18 мая 2023, в 08:06
350 руб./за проект
18 мая 2023, в 06:33
500 руб./за проект
18 мая 2023, в 04:47
1000 руб./в час
Минуточку внимания
Поиск файлов
Маска — это условие
(шаблон) для поиска файла с использованием
символов «*» и
«?». Знак «*» заменяет любое количество
символов в маске в пределах от 1 до 211,
знак «?» —
один произвольный символ или его
отсутствие.
Примеры создания
масок:
*.
* — поиск всех файлов из указанного
диапазона поиска;
*.doс
— поиск всех файлов с расширением dос;
???. * — поиск всех
файлов с именем не более чем из трех
символов;
а*. * — поиск всех
файлов, имена которых начинаются на
букву «а».
Чтобы осуществить
поиск объектов, необходимо в главном
меню Пуск
выбрать
команду Поиск,
появится
диалоговое окно Результат
поиска.
Для того чтобы
приступить к поиску, необходимо следовать
указаниям на левой панели:
-
если нужно найти
файлы и папки, выберите соответствующий
пункт;
-
в
поле Часть
имени файла или имя файла целиком: (рис.
11)
ввести
имя файла
или задать маску поиска; -
в поле Слово
или фраза в файле: можно
ввести фрагмент текста, который должен
содержать искомый файл;
-
в поле Поиск
в: выбрать
диск, на котором будет проведен поиск;
-
с помощью
дополнительных условий: Когда
были произведены последние изменения?,
Какой размер файла?, Дополнительные
параметры можно
найти файлы, которые были созданы или
изменены в течение определенного
периода времени; определить размер
искомого файла;
-
щелкнуть на кнопке
Найти.
Задания
для тренировки 9. Поиск
файлов.
-
На
всем компьютере найти все файлы с
расширением bmр. -
Скопировать из
окна поиска два файла в папку под своей
фамилией.
-
На всем компьютере
найти файлы с расширением txt,
имя которых начинается на букву «г».
-
Скопировать три
файла в папку под своей фамилией.
-
На всем компьютере
найти файлы, в середине имени
которых есть буквосочетание «st».
-
Скопировать три
файла в папку Письма.
-
На
всем компьютере найти файлы с расширением
txt,
размером не менее 5 Кб и созданные
за последние шесть месяцев.
-
Скопировать два
файла в папку Письма.
-
На всем компьютере
найти файлы, в имени которых
последняя или предпоследняя буква
«d».
-
Скопировать два
файла в папку Письма.
Задания
для тренировки 10. Удаление
файлов и папок.
-
В папке Письма
выделить
два файла и удалить. -
Очистить содержимое
папки Корзина.
Программа
Проводник Рекомендации
к
выполнению заданий
Проводник — это
служебная программа, относящаяся к
категории диспетчеров файлов. Она
предназначена для навигации по файловой
структуре компьютера и ее обслуживания.
Проводник полностью внедрен в операционную
систему ^УшсЬлуз
ХР.
Окно программы Проводник имеет две
рабочие области: левую панель — панель
папок и
правую панель — панель содержимого.
Программу Проводник
можно запустить:
-
с помощью команды
контекстного меню кнопки Пуск, Проводник; -
с
помощью команды Проводник контекстного
меню значка Мой компьютер. Примечание.
В
операционной системе ^пкюамз
ХР
окно Проводника можно отобразить,
непосредственно открыв любое окно,
например папку Мои
документы,
в этом случае должна быть включена
кнопка Папки на
панели
инструментов
Обычные кнопки.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Введение | |
Простой поиск | |
-name: Поиск по имени | |
Поиск по расширению | |
-not: Логическое отрицание | |
-o: Логическое ИЛИ | |
Найти и сразу скопировать в текущую директорию | |
Поиск по типу | |
Уровни вложенности | |
Поиск по размеру файла | |
Поиск по началу имени файла | |
Поиск по части имени файла | |
Переместить определённые файлы но не директории | |
-perm: Поиск по правам доступа | |
-path: Поиск путей | |
-prune: Не заходить в директорию | |
Исключить директорию из поиска | |
find + sed | |
find + grep |
Введение
find это мощный инструмент для работы с файлами.
С его помощью можно задавать различные составные условия для дальнейших действий над файлами.
Часто ипользуется как первый шаг перед копированием, перемещением, удалением, изменением
файлов, соответсвующих определённым условиям.
Поиск
Найти и вывести на экран все файлы в директории
find
find .
find . -print
-name: Поиск по имени
Найти по полному имени в текущей директории
find . -name ‘heihei.log‘
./heihei.log
Если регистр не важен
find . -iname ‘heihei.log‘
./HeiHei.log
./heihei.log
Поиск по расширению
Найти по расширению файла с помощью wildcard *
Ищем в /usr/share/doc все pdf файлы
find /usr/share/doc -name ‘*.pdf‘
-not: обратное условие
Найти в текущей директории все файлы кроме php
find . -not -name ‘*.php‘
find . ! -name ‘*.php‘
Несколько условий вместе
Логическое и
Найти все файлы, которые начинаются с log но не имеют расширения .txt
find . -name “log*” ! -name ‘*.txt‘
-o: Логическое или
Найти либо .html либо .php файлы
find . -name ‘*.html‘ -o -name ‘*.php‘
Найти и скопировать
Найти и сразу скопировать в текущую директорию
find /usr/share/doc -name ‘*.pdf‘ -exec cp {} . ;
Найти в текущей директории
find -name ‘*.pdf‘
Удалить из текущей директории
find -name ‘*.pdf‘ -delete
Поиск по типу
Чтобы найти только
файлы определённого типа
выполните find с опцией type.
Например, что найти все ссылки в директории /etc
find /etc -type l
Подробнее о файлах в Linux читайте в статье
«Типы файлов в Linux»
Уровни вложенности
Найти все ссылки только на верхнем уровне вложенности
find /etc -maxdepth 1 -type l
Поиск по размеру файла
df -h /boot
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1014M 194M 821M 20% /boot
Найти обычные файлы определённого размера
Чтобы найти обычные файлы нужно использовать
-type f
find /boot -size +20000k -type f
find: ‘/boot/efi/EFI/centos’: Permission denied
find: ‘/boot/grub2’: Permission denied
/boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img
/boot/initramfs-3.10.0-1160.el7.x86_64.img
/boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
Файлы бывают следующих типов:
– : regular file
d : directory
c : character device file
b : block device file
s : local socket file
p : named pipe
l : symbolic link
Подробности в статье –
«Файлы в Linux»
find /boot -size +10000k -type f
find: ‘/boot/efi/EFI/centos’: Permission denied
find: ‘/boot/grub2’: Permission denied
/boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img
/boot/initramfs-3.10.0-1160.el7.x86_64.img
/boot/initramfs-3.10.0-1160.el7.x86_64kdump.img
/boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
/boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
То же самое плюс показать размер файлов
find /boot -size +10000k -type f -exec du -h {} ;
find: ‘/boot/efi/EFI/centos’: Permission denied
find: ‘/boot/grub2’: Permission denied
60M /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img
21M /boot/initramfs-3.10.0-1160.el7.x86_64.img
13M /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img
21M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
14M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
Поиск по началу имени файла
Обратите внимание, что в find, в отличие от
grep
, ставить перед началом
названия никаких символов не нужно.
find -name ‘topb*‘
Поиск по части имени файла
Найти в проекте
topbicyle
все директории с qa в названии
find topbicycle/ -name ‘*qa*‘ -type d
Переместить определённые файлы но не директории
Переместить файлы начинающиеся на определённые символы в другую директорию, но
не трогать директории с подобными названиями
find -maxdepth 1 -type f -name ‘sub*‘ -exec mv {} subprocess ;
-perm: поиск по правам доступа
find . -type f -perm 0600
find . -type f ! -perm 0600
-path: поиск путей
Если мне нужно посмотреть содержимое директорий
/code/php
и
/code/python
find . -path “./code/p*”
Пример укороченного результата
./code/python
./code/python/paramiko/errors/index.php
./code/python/paramiko/models
./code/python/paramiko/index.php
./code/python/ve
./code/python/ve/index.php
./code/python/datetime.php
…
./code/php
…
./code/php/mobile_headers.php
./code/php/external_func.php
./code/php/json_decode.php
./code/php/index.php
./code/php/random_int.php
./code/php/check_http_user_agent.php
-prune: ограничить глубину
С помощью
path
можно посмотреть содержимое всех поддиректорий code на букву p
/code/p*
Если нужно посмотреть только поддиректории верхнего уровня – используется -prune
find . -path “./code/p*” -prune
./code/python
./code/php
Получили только поддиректории без их содержимого
Исключить директорию из поиска
Из предыдущего параграфа понятно, что с помощью
prune
можно исключить директорию из поиска.
Пример: найти в ./code все файлы, заканчивающиеся на index.php
но проигнорировать поддиректории на p, то есть в директориях python и php не искать.
find ./code -path “./code/p*” -prune -false -o -name “*index.php”
./code/js/errors/index.php
./code/js/index.php
./code/c/index.php
./code/cpp/index.php
./code/go/pointers/index.php
./code/go/declare_variable/index.php
./code/go/constants/index.php
./code/go/index.php
./code/java/index.php
./code/dotnet/index.php
./code/ruby/index.php
./code/theory/index.php
./code/index.php
-false нужен чтобы не выводить проигнорированные директории.
Ещё один способ исключить директорию из поиска
find ./code -name “*.php“ -not -path “./code/p*”
find + sed
К результатам команды find можно сразу же применить
sed
find . -type f -name ‘*.php‘ -exec sed -i ‘s@python/old_file_name.php@python/new_directory/new_name.php@‘ {} ;
. означает, что ищем в текущей директории (и вложенных)
Эта команда заменяет везде
python/old_file_name.php
на
python/new_directory/new_name.php
Следующий пример
find . -type f -name ‘*.php‘ -exec sed -n ‘//i/aws/oauth.php/ p‘ {} ;
Эта команда ищет по всем .php файлам строку /i/aws/oauth.php
Если нужно не найти или заменить строку а показать название файла, в котором есть определённые символы
– удобно воспользоваться связкой find + grep
Добавить в функцию my_function дополнительный аргумент – сразу в всех .php файлах.
find -type f -name “*.php“ -exec sed ‘s/my_function($old_arg1, $old_arg2)/my_function($old_arg1, $old_arg2, $new_arg1/‘ {} ;
find -type f -name “*.php“ -exec sed ‘s/my_function($old_arg1, $old_arg2)/my_function($old_arg1, $old_arg2, $new_arg1/‘ {} ;
find + grep
К результатам команды find можно сразу же применить
grep
find . -type f -name ‘*.php‘ -exec grep -l ‘/dvps/aws/oauth.php‘ {} ;
Эта команда ищет по всем .php файлам строку /i/aws/oauth.php и показывает в каком
файле встречается эта строка
Linux | |
FAQ | |
Debian | |
Ubuntu | |
CentOS | |
Rocky | |
Bash | |
Настройка сети | |
Файлы, директории, ссылки… | |
Изучить свободное место на диске | |
Объединить .pdf файлы | |
diff: сравнение файлов | |
find: поиск файлов | |
wget: скачивание файлов | |
kill: завершить процесс | |
curl | |
make | |
signal: системные сигналы | |
env: переменные окружения | |
localectl: язык | |
systemctl: Список активных сервисов | |
Firewall | |
SCP: обмен файлами; | |
SSH: удалённый доступ | |
cron: задания по расписанию | |
sudo | |
Мониторинг ресурсов | |
C | |
C++ |
Скопа 2 / 2 / 0 Регистрация: 19.12.2020 Сообщений: 197 |
||||
1 |
||||
Вывести все файлы и папки, которые начинаются с буквы (любой)14.04.2022, 11:52. Показов 1449. Ответов 5 Метки с# (Все метки)
Помогите, пожалуйста, решить такую задачу.
0 |
AndreyVorobey 2727 / 1644 / 869 Регистрация: 14.04.2015 Сообщений: 5,608 |
||||
14.04.2022, 12:20 |
2 |
|||
Сообщение было отмечено Скопа как решение РешениеСкопа,
1 |
Скопа 2 / 2 / 0 Регистрация: 19.12.2020 Сообщений: 197 |
||||
14.04.2022, 12:42 [ТС] |
3 |
|||
AndreyVorobey, спасибо! Но, как я понимаю, он ищет по конкретной букве, а не по всем в целом?
А как можно сделать так, чтобы он просто искал по букве, неважно, что это за буква будет? Просто условие в том, что первая в названии файла/папки должна быть любая буква. А другие символы в названии всё равно какие будут
0 |
iLinks 560 / 373 / 209 Регистрация: 03.01.2017 Сообщений: 1,025 |
||||||||||||||||
14.04.2022, 12:58 |
4 |
|||||||||||||||
Сообщение было отмечено Скопа как решение Решение
В методе или полем добавьте:
В самом методе уберите параметр
if(char.ToLower(Path.GetFileName(folder).First()) == char.ToLower(first_letter)) И это условие измените на
if (char.ToLower(Path.GetFileName(filename).First()) == char.ToLower(first_letter)) А это на
1 |
2 / 2 / 0 Регистрация: 19.12.2020 Сообщений: 197 |
|
14.04.2022, 13:03 [ТС] |
5 |
iLinks, спасибо!
0 |
560 / 373 / 209 Регистрация: 03.01.2017 Сообщений: 1,025 |
|
14.04.2022, 13:05 |
6 |
спасибо! Благодарите лучше AndreyVorobey
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
14.04.2022, 13:05 |
Помогаю со студенческими работами здесь Текстовые файлы. Вывести все строчки, которые начинаются с vb Вывести на экран все слова, которые начинаются с заглавной буквы Все слова, которые начинаются с большой буквы, вывести большими буквами Вывести на экран все слова из данной строки, которые начинаются с заданной буквы Вывести на экран все слова, которые начинаются с заглавной буквы (Visual Prolog) Прочитать текст из файла и вывести в другой файл в столбик все слова, которые начинаются с буквы А Из введенной строки удалить все слова, которые начинаются с большой буквы и вывести полученную строку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 6 |