Посмотрите, если папка имеет некоторые файлы с определенными расширениями

Можно установить переменную окружения для того каталога.

# Making the variable name consist entirely of capital letters makes the
# variable less likely to conflict with other variables in scripts. You can
# make the variable name consist of lowercase letters but you may run
# into problems. 
export DB=/some/very/long/path/db

Затем можно использовать экспортируемую переменную в Vim как таковом:

:e $DB/file.java

и в Вашей оболочке как таковой:

grep -r string $DB

Средства подстановки переменных Vim и удара совершенно независимы друг от друга. Vim просто, оказывается, заменяет переменными окружения способом, подобным удару (и много других оболочек).

4
28.10.2015, 03:15
5 ответов
for dir in Abc/ Qwe/ Zxc/ Rty/; do
  result="$(find "$dir" -maxdepth 1 -type f -name '*.pdf' -printf .)"
  echo "Folder '${dir}' contains ${#result} *.pdf files."
done

Это игнорирует подкаталоги.

6
27.01.2020, 20:47

Используйте find / home / Desktop -type f -name '* .pdf' .

2
27.01.2020, 20:47

С zsh :

for dir (Abc Qwe Zxc Rty) {
  pdf=($dir/*.pdf(ND.))
  print -r "Directory '$dir' contains ${#pdf} *.pdf files"
}
1
27.01.2020, 20:47

Использование find , безусловно, самый быстрый способ сделать это. Если вы хотите ограничить каталоги для поиска, вы можете использовать:

find ... -type f -name '* .pdf'

Если вы хотите подсчитать количество файлов :

find ... -type f -name '* .pdf' | wc -l

1
27.01.2020, 20:47

Есть несколько различных способов сделать это, в зависимости от того, что вы хотите сделать с информацией.

  • Если вам нужен список каталогов, которые непосредственно содержат .pdf файлы (т.е. только на верхнем уровне, не в подкаталогах), я бы сделал так:

    dirname */*.pdf | sort | uniq
    
  • Если вам нужен список каталогов, содержащих файлы .pdf на любом уровне (то есть они могут находиться в подкаталогах каталога), попробуйте

    find . -name '*.pdf' | cut -d/ -f2 | sort | uniq
    

    или, если вы хотите искать только в определенных подкаталогах,

    find Abc Qwe Zxc Rty -name '*.pdf' | cut -d/ -f1 | sort | uniq
    
  • Если вам нужен список всех файлов .pdf в подкаталогах, то это просто

    find . -name '*.pdf'
    
  • Если вам нужен подсчет .pdf файлов в каждом каталоге, для подсчета только файлов верхнего уровня я бы использовал

    dirname */*.pdf | sort | uniq -c
    

    или для включения файлов в подкаталогах

    find . -name '*.pdf' | cut -d/ -f2 | sort | uniq -c
    

    (вы можете увидеть разницу, просто добавив опцию -c к uniq).

1
27.01.2020, 20:47

Теги

Похожие вопросы