Можно установить переменную окружения для того каталога.
# 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 просто, оказывается, заменяет переменными окружения способом, подобным удару (и много других оболочек).
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
Это игнорирует подкаталоги.
С zsh
:
for dir (Abc Qwe Zxc Rty) {
pdf=($dir/*.pdf(ND.))
print -r "Directory '$dir' contains ${#pdf} *.pdf files"
}
Использование find
, безусловно, самый быстрый способ сделать это. Если вы хотите ограничить каталоги для поиска, вы можете использовать:
find
Если вы хотите подсчитать количество файлов :
find
Есть несколько различных способов сделать это, в зависимости от того, что вы хотите сделать с информацией.
Если вам нужен список каталогов, которые непосредственно содержат .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
).