Как найти файлы начинающиеся на определенную букву

Как найти файл по части имени

Очень часто бывают такие ситуации когда не получается найти очень нужный файл на компьютере, при этом точно зная что он есть. Многие даже не помнять полное название файла и его месторасположение. Найти файл по части имени достаточно просто. В этом поможет стандартный поиск Windows, это достаточно мощный инструмент который позволят искать файлы по разным условиям, имени, типу, размеру и другим свойствам. Всех их описывать достаточно долго, да и по большому счету рядовому пользователю они не нужны. Так как чаще всего они ищут именно по имени. Сегодня расскажу как можно найти файл по части имени.

Поиск файлов по части имени

Рассмотрим все на простеньком примере, допустим есть какой-то список документов.

Поиск по части имени

И если в поиск набрать «коп» то поиск найдет все документы где в начале имени встречается это сочетание букв.

Как найти файл по части имени

А если набрать «пия» то поиск не даст результатов, так как по умолчанию введённое в поисковую строку сочетание букв или цифр будет искаться в начале имени файлов.

Поиск файлов по части имени

Для того чтобы найти файлы по части имени перед «пия» необходимо поставить звездочку «*», в этом случае в результатах отобразиться все файлы в имени которых встречается введённое сочетание символов.

поиск файлов по части имени

Давайте рассмотрим еще один пример, есть файл именем «Лайфхаки», представим что мы помним только последнею часть «хаки».

Как найти файл

Поиск ничего не найдет, так как он будет искать по началу имени.

Как найти файл зная только часть имени файла

Для того чтобы поиск искал введённое сочетание во всем имени нужно поставить «*».

Как найти файл зная только часть имени

Вот так символ «*» помогает искать файлы зная только часть имени, на самом деле подобных символом несколько, есть например, «?» оно позволят искать один пропущенный знак, например, если ввести «к?т» то поиск покажет все файлы с именем «кот», «кит», «кат» и т.д. Так жесть есть символ «#», он делает тоже самое только в числах.

KoyaKoya

Как вывести список файлов директории, имя которых начинается на заданные символы?

Какие параметры команды 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.
Поиск
файлов.

  1. На
    всем компьютере найти все файлы с
    расширением bmр.

  2. Скопировать из
    окна поиска два файла в папку под своей
    фамилией.

  1. На всем компьютере
    найти файлы с расширением txt,
    имя которых начинается на букву «г».

  1. Скопировать три
    файла в папку под своей фамилией.

  1. На всем компьютере
    найти файлы, в середине имени
    которых есть буквосочетание «st».

  1. Скопировать три
    файла в папку Письма.

  1. На
    всем компьютере найти файлы с расширением
    txt,
    размером не менее 5 Кб и созданные
    за последние шесть месяцев.

  1. Скопировать два
    файла в папку Письма.

  1. На всем компьютере
    найти файлы, в имени которых
    последняя или предпоследняя буква
    «d».

  1. Скопировать два
    файла в папку Письма.

Задания
для тренировки 10.
Удаление
файлов и папок.

  1. В папке Письма
    выделить
    два файла и удалить.

  2. Очистить содержимое
    папки Корзина.

Программа
Проводник
Рекомендации
к
выполнению заданий

Проводник — это
служебная программа, относящаяся к
категории диспетчеров файлов. Она
предназначена для навигации по файловой
структуре компьютера и ее обслуживания.
Проводник полностью внедрен в операционную
систему ^УшсЬлуз
ХР.
Окно программы Проводник имеет две
рабочие области: левую панель — панель
папок и
правую панель — панель содержимого.

Программу Проводник
можно запустить:

  1. с помощью команды
    контекстного меню кнопки Пуск, Проводник;

  2. с
    помощью команды Проводник контекстного
    меню значка Мой компьютер. Примечание.
    В
    операционной системе ^пкюамз
    ХР
    окно Проводника можно отобразить,
    непосредственно открыв любое окно,
    например папку Мои

документы,
в этом случае должна быть включена
кнопка Папки на
панели

инструментов
Обычные кнопки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
Содержание

Введение
Простой поиск
-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

Метки с# (Все метки)


Студворк — интернет-сервис помощи студентам

Помогите, пожалуйста, решить такую задачу.
Имеется корневая папка C:abcde, где содержатся другие папки и файлы. Среди них надо найти те файлы и папки, которые начинаются с буквы (английский алфавит, заглавная или нет – не важно).
Я думала сделать через сравнение со строковой переменной letters, где содержатся все эти буквы, но не знаю, как это реализовать, если надо искать в файлах и папках.

C#
1
2
3
4
5
6
7
8
void Letter() 
     {
           //поиск в папках
           string letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            foreach (string d in Directory.GetDirectories(@"C:abcde"))
            if d == //сравнение с letters
             //и далее вывод
      }



0



AndreyVorobey

2727 / 1644 / 869

Регистрация: 14.04.2015

Сообщений: 5,608

14.04.2022, 12:20

2

Лучший ответ Сообщение было отмечено Скопа как решение

Решение

Скопа,

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
 
namespace ConsoleApp407
{
    class Program
    {
        private static List<string> ls = new List<string>();
 
        static void Main(string[] args)
        {
            string start_path = @"path_to_directory";
 
            Console.Write("Введите букву для поиска: ");
 
            char first_letter = Convert.ToChar(Console.ReadLine());
 
            GetRecursFiles(start_path, first_letter);
 
            foreach (var row in ls)
            {
                Console.WriteLine(row);
            }
        }
        private static List<string> GetRecursFiles(string start_path, char first_letter)
        {
            string[] folders = Directory.GetDirectories(start_path);
 
            foreach (string folder in folders)
            {                
                if(char.ToLower(Path.GetFileName(folder).First()) == char.ToLower(first_letter))
                {
                    ls.Add($"Папка: {folder}");                    
                }
                GetRecursFiles(folder, first_letter);
            }
            string[] files = Directory.GetFiles(start_path);
 
            foreach (string filename in files)
            {
                if (char.ToLower(Path.GetFileName(filename).First()) == char.ToLower(first_letter))
                {
                    ls.Add($"Файл: {filename}");
                }                    
            }
            return ls;
        }
    }
}



1



Скопа

2 / 2 / 0

Регистрация: 19.12.2020

Сообщений: 197

14.04.2022, 12:42

 [ТС]

3

AndreyVorobey, спасибо! Но, как я понимаю, он ищет по конкретной букве, а не по всем в целом?

C#
1
2
3
4
5
   Console.Write("Введите букву для поиска: ");
 
   char first_letter = Convert.ToChar(Console.ReadLine());
 
   GetRecursFiles(start_path, first_letter);

А как можно сделать так, чтобы он просто искал по букве, неважно, что это за буква будет?
Чтобы такого параметра, как first_letter (обозначающий конкретную букву) не было в принципе или он совмещал в себя все возможные буквы (заглавные и строчные)

Просто условие в том, что первая в названии файла/папки должна быть любая буква. А другие символы в названии всё равно какие будут



0



iLinks

560 / 373 / 209

Регистрация: 03.01.2017

Сообщений: 1,025

14.04.2022, 12:58

4

Лучший ответ Сообщение было отмечено Скопа как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
static void Main(string[] args)
{
    string start_path = @"C:abcde";
 
    GetRecursFiles(start_path);
 
    foreach (var row in ls)
    {
        Console.WriteLine(row);
    }
    Console.ReadLine();
}

В методе или полем добавьте:

C#
1
 var letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();

В самом методе уберите параметр char first_letter

Цитата
Сообщение от AndreyVorobey
Посмотреть сообщение

if(char.ToLower(Path.GetFileName(folder).First()) == char.ToLower(first_letter))

И это условие измените на

C#
1
if (letters.Contains(Path.GetFileName(folder).First()))

Цитата
Сообщение от AndreyVorobey
Посмотреть сообщение

if (char.ToLower(Path.GetFileName(filename).First()) == char.ToLower(first_letter))

А это на

C#
1
if (letters.Contains(Path.GetFileName(filename).First()))



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
короче говоря в файле in.text записоноvb 1
1esf
sf
3
ds
vb 5
vb 3
vb12
wrw
vb100

Вывести на экран все слова, которые начинаются с заглавной буквы
помогите написать программу которая находит и выводит на экран слова которые начинаются с заглавной…

Все слова, которые начинаются с большой буквы, вывести большими буквами
Здравствуйте! Помогите пожалуйста! Нужно в текстовом файле все слова, которые начинаются с большой…

Вывести на экран все слова из данной строки, которые начинаются с заданной буквы
Дана строка,состоящая из слов,составленных из строчных русских букв.Слова отделены друг от друга…

Вывести на экран все слова, которые начинаются с заглавной буквы (Visual Prolog)
Вывести на экран все слова, которые начинаются с заглавной буквы пж срочноо

Прочитать текст из файла и вывести в другой файл в столбик все слова, которые начинаются с буквы А
Прочитать текст из файла и вывести в другой файл в столбик все слова, которые начинаются с буквы А….

Из введенной строки удалить все слова, которые начинаются с большой буквы и вывести полученную строку
#include &lt;stdio.h&gt;
#include &lt;locale.h&gt;
#include &lt;math.h&gt;
#include &lt;string.h&gt;
#include…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

6

Добавить комментарий