Как вывести файлы названием которых содержит меньше пяти символов скажем? unix

Как вывести файлы названием которых содержит меньше пяти символов скажем? unix

16.10.2017 10:01:21 Просмотров 32 Источник

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

У вопроса есть решение - Посмотреть?

https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix#comment1111054_731711
В одной папке или во всей системе?
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix#comment1111055_731711
В одной папке,или во всей системе,не важно,мне необходимо принцип понять,у find атрибута я такого не нашел вроде как...

Ответы - Как вывести файлы названием которых содержит меньше пяти символов скажем? unix / Как вывести файлы названием которых содержит меньше пяти символов скажем? unix

Является ответом!
Suvitruf says Reinstate Monica

16.10.2017 10:11:02

find /your_path -type f -print| awk -F/ ' length($NF)  < 5 '
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731713#comment1111070_731713
а каким образом уже можно изменить права доступа к уже найденным файлам?
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731713#comment1111078_731713
Вообще chmod. Или вы про то, чтоб применить эту команду ко всем файлам, которые показала find?
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731713#comment1111079_731713
@EVG, вообще говоря, это уже отдельный вопрос, который стоит опубликовать отдельным сообщением. Но в вашем случае я бы дописал к команде | xargs chmod права.
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731713#comment1111082_731713
find /your_path k -type f -print| awk -F/ ' length($NF) < 5 ' | xargs -I{} chmod -v 645 {}
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731713#comment1111083_731713
Благодарю,разобрался.
n3r0bi0m4n

16.10.2017 10:17:25

Пример с grep:

find ~ -type f | grep -P '/.{5}$'
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731719#comment1112508_731719
Вот здесь вы были правы про дубликат. В следующий раз, пожалуйста, отмечайте сразу: тревога → закрыть → уже был задан → ссылка на нужный вопрос. Тогда вопрос попадет в очередь проверок. Если действительно дубликат — проверки в очереди это подтвердять. И не бойтесь ошибиться с предположением, там ещё пять человек проверят отметку.
mymedia

16.10.2017 10:24:04

Утилита find умеет в регулярные выражения, и можно обойтись без вызова сторонних программ.

find -regextype egrep -regex '.*/.{,5}'

Первые три символа в шаблоне нужны из-за того, что -regex применяется ко всему пути, а мы хотим найти файлы, анализируя лишь их имя безотносительно местоположения. Кроме того, мы задали ключ -regextype, чтобы упростить наше регулярное выражение.

Обратите внимание, в регулярке мы записали пятёрку, что означает нестрогое сравнение. То есть команда выше выведет имена файлов, в которых не более пяти символов. Чтобы обеспечить точное соответсвие условию в вопросе, нужно заменить 5 на 4. (Но это уже будет не так интересно).

https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731721#comment1111436_731721
{,5} означает "меньше либо равно". Чтобы < 5 было, можно {,4} использовать. Можно ещё так: find -regex '.*/.?.?.?.?'
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731721#comment1111558_731721
верно! дописал дополнение об этом, второй вариант мне кажется более сложным - в нем больше символов
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731721#comment1111760_731721
Если вы длину команды считаете важным, то второй вариант как раз короче (обратите внимание, нет -regextype)
https://ru.stackoverflow.com/questions/731711/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b2%d0%b5%d1%81%d1%82%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b-%d0%bd%d0%b0%d0%b7%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d1%85-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82-%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5-%d0%bf%d1%8f%d1%82%d0%b8-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%be%d0%b2-%d1%81%d0%ba%d0%b0%d0%b6%d0%b5%d0%bc-unix/731721#comment1113613_731721
да... точно ._.
Помочь в развитии проекта:
Закрыть X